stream_set_write_buffer() does not work

php.internals

Masaki Fujimoto

23 years ago
Hello, I noticed that stream_set_write_buffer() is no more available on local files because of the change made on 2003/03/18 to main/streams.c (1.125.2.41 -> 1.125.2.42: use a file descriptor instead of a file pointer). As a result of this change, of course stream_set_write_buffer() and set_file_buffer() does not work anymore in most of the cases because user-level I/O buffer functions like setvbuf() does not work on file descriptors, though I'm not sure if this is the "probelm" or not. If this is an intentional result, fixing documents (== add note like "stream_set _write_buffer does not work on local files, bla bla bla" and fix a sample code) will do, but if not, maybe we should implement php-level I/O buffer or revert this change (I'm not sure reverting this change makes another problem, though:) Regards, Masaki Fujimoto fujimoto@tunebiz.net fujimoto@php.net

Wez Furlong

23 years ago
I am aware of this issue, however, reverting leaves us at the mercy of problems on solaris. I do plan to implement a write buffer, however, introducing that into the 4.3.x branch is probably a bad idea at this late stage. While I don't think that stream_set_write_buffer()/set_file_buffer() having no effect is such a bad thing (most php scripts don't have any need to call this function), I am concerned about the overall performance of writes in the absence of a user-space write buffer. So I'm looking into a solution at the moment; there is no need to update the documentation at this point. --Wez. On Thu, 1 May 2003, Masaki Fujimoto wrote:

Masaki Fujimoto

23 years ago
Ah, I understand the status of this issue (that will do for me), and I agree w/ every point you mentioned. Wez Furlong <Pine.LNX.4.53.0305011157120.7207@zaneeb.brainnet.i>:
>I am aware of this issue, however, reverting leaves us at the mercy of >problems on solaris. > >I do plan to implement a write buffer, however, introducing that into >the 4.3.x branch is probably a bad idea at this late stage. > >While I don't think that stream_set_write_buffer()/set_file_buffer() >having no effect is such a bad thing (most php scripts don't have any >need to call this function), I am concerned about the overall >performance of writes in the absence of a user-space write buffer. > >So I'm looking into a solution at the moment; there is no need to update >the documentation at this point. > >--Wez. > > >On Thu, 1 May 2003, Masaki Fujimoto wrote: > >> Hello, >> >> I noticed that stream_set_write_buffer() is no more available on local files >> because of the change made on 2003/03/18 to main/streams.c (1.125.2.41 -> >> 1.125.2.42: use a file descriptor instead of a file pointer). >> >> As a result of this change, of course stream_set_write_buffer() and >> set_file_buffer() does not work anymore in most of the cases because user-level >> I/O buffer functions like setvbuf() does not work on file descriptors, though >> I'm not sure if this is the "probelm" or not. >> >> If this is an intentional result, fixing documents (== add note like "stream_set >> _write_buffer does not work on local files, bla bla bla" and fix a sample code) >> will do, but if not, maybe we should implement php-level I/O buffer or revert >> this change (I'm not sure reverting this change makes another problem, >> though:) >> >> Regards, >> >> Masaki Fujimoto >> fujimoto@tunebiz.net >> fujimoto@php.net >> >> >>
-- Masaki Fujimoto fujimoto@techstyle.jp / fujimoto@php.net http://techstyle.jp/

Wico de Leeuw

23 years ago
Hiya when compiling the cvs of php5 of : May 01, 2003 15:30 GMT and May 01, 2003 13:30 GMT i got this compile error: /bin/sh /usr/src/php5-200305011530/libtool --silent --preserve-dup-deps --mode=compile gcc -Iext/standard/ -I/usr/src/php5-200305011530/ext/standard/ -DPHP_ATOM_INC -I/usr/src/php5-200305011530/include -I/usr/src/php5-200305011530/main -I/usr/src/php5-200305011530 -I/usr/local/apache/include -I/usr/src/php5-200305011530/Zend -I/usr/local/openssl/include -I/usr/local/zlib/include -I/usr/local/mysql/include/mysql -I/usr/src/php5-200305011530/TSRM -g -O2 -prefer-pic -c /usr/src/php5-200305011530/ext/standard/file.c -o ext/standard/file.lo /usr/src/php5-200305011530/ext/standard/file.c:113:21: fnmatch.h: No such file or directory make: *** [ext/standard/file.lo] Error 1 configure line: ./configure --prefix=/usr/local/php --with-openssl=/usr/local/openssl --with-pear=/usr/local/php/pear --with-apxs2filter=/usr/local/apache/bin/apxs --with-config-file-path=/home/apache/ --with-mysql=/usr/local/mysql --with-zlib=/usr/local/zlib --disable-rpath --disable-ipv6 --disable-cgi --disable-ctype --disable-posix --disable-xml --disable-overload --disable-mbregex --disable-tokenizer Gr, Wico