Bug #16048: fgets/feof failure when stdin is reading from a pipe

2002-03-13 Thread pjm

From: [EMAIL PROTECTED]
Operating system: Solaris 2.7  2.8
PHP version:  4.1.2
PHP Bug Type: Filesystem function related
Bug description:  fgets/feof failure when stdin is reading from a pipe

The fgets() function works differently when the input is a pipe. 
Specifically, feof() returns true after the first line is read.  The test
script and sample output follow.  The test script works fine if stdin is
redirected from a file.  It fails if stdin is a pipe.

Nothing special about the build:

./configure  --prefix=/usr/local --with-mysql

pjm@poseidon cat test.php 
#!/usr/local/bin/php -q
?php

$fd = fopen(php://stdin, r);
while (! feof($fd))
{
$buffer = fgets($fd, 4096);
echo $buffer;
}

?
pjm@poseidon  test.php ./test.php 
#!/usr/local/bin/php -q
?php

$fd = fopen(php://stdin, r);
while (! feof($fd))
{
$buffer = fgets($fd, 4096);
echo $buffer;
}

?
pjm@poseidon cat test.php | ./test.php 
#!/usr/local/bin/php -q


-- 
Edit bug report at http://bugs.php.net/?id=16048edit=1
-- 
Fixed in CVS:http://bugs.php.net/fix.php?id=16048r=fixedcvs
Fixed in release:http://bugs.php.net/fix.php?id=16048r=alreadyfixed
Need backtrace:  http://bugs.php.net/fix.php?id=16048r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=16048r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16048r=support
Expected behavior:   http://bugs.php.net/fix.php?id=16048r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=16048r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=16048r=submittedtwice




Bug #16048 Updated: fgets/feof failure when stdin is reading from a pipe

2002-03-13 Thread pjm

 ID:   16048
 Updated by:   [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
 Status:   Open
 Bug Type: Filesystem function related
 Operating System: Solaris 2.7  2.8
 PHP Version:  4.1.2
 New Comment:

I also tested this on Red Hat 7.2 with PHP 4.0.6  It works fine there.


Previous Comments:


[2002-03-13 17:00:20] [EMAIL PROTECTED]

The fgets() function works differently when the input is a pipe. 
Specifically, feof() returns true after the first line is read.  The
test script and sample output follow.  The test script works fine if
stdin is redirected from a file.  It fails if stdin is a pipe.

Nothing special about the build:

./configure  --prefix=/usr/local --with-mysql

pjm@poseidon cat test.php 
#!/usr/local/bin/php -q
?php

$fd = fopen(php://stdin, r);
while (! feof($fd))
{
$buffer = fgets($fd, 4096);
echo $buffer;
}

?
pjm@poseidon  test.php ./test.php 
#!/usr/local/bin/php -q
?php

$fd = fopen(php://stdin, r);
while (! feof($fd))
{
$buffer = fgets($fd, 4096);
echo $buffer;
}

?
pjm@poseidon cat test.php | ./test.php 
#!/usr/local/bin/php -q






-- 
Edit this bug report at http://bugs.php.net/?id=16048edit=1