#42037 [NEW]: fgetc() retuns one char when fails to read on php6

From: Date: Wed, 18 Jul 2007 17:04:18 +0000
Subject: #42037 [NEW]: fgetc() retuns one char when fails to read on php6
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-115205@lists.php.net to get a copy of this message
From: kraghuba at in dot ibm dot com Operating system: RHEL 5 PHP version: 6CVS-2007-07-18 (snap) PHP Bug Type: Filesystem function related Bug description: fgetc() retuns one char when fails to read on php6 Description: ------------ fgets() returns a charecter when it fails to read from file because of following reasons: 1. file pointer already points to end of the file(file opened in mode) 2. File is opened in the write only mode Only applicable to php6. PHP Version: PHP 6.0.0-dev (cli) (built: Jul 18 2007 20:53:03) (GCOV) Copyright (c) 1997-2007 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2007 Zend Technologies OS: RHEL 5 Config : ./configure --enable-gcov Reproduce code: --------------- <?php $file_handle = fopen("test.txt", "w"); $data = "testing fgetc"; fwrite($file_handle, $data); // rewind the file pointer to begining of the file var_dump( rewind($file_handle) ); var_dump( ftell($file_handle) ); var_dump( feof($file_handle) ); // read from file var_dump( fgetc($file_handle) ); var_dump( ftell($file_handle) ); var_dump( feof($file_handle) ); fseek($file_handle, 0, SEEK_END); var_dump( fgetc($file_handle) ); fclose($file_handle); unlink("test.txt"); ?> Expected result: ---------------- bool(true) int(0) bool(false) bool(false) int(0) bool(false) bool(false) Actual result: -------------- bool(true) int(0) bool(false) string(1) "" int(0) bool(true) string(1) "" output when run using run-test.php: ----------------------------------- bool(true) int(0) bool(false) string(1) "ÿ" int(0) bool(true) string(1) "ÿ" -- Edit bug report at http://bugs.php.net/?id=42037&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=42037&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=42037&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=42037&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=42037&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=42037&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=42037&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=42037&r=needscript Try newer version: http://bugs.php.net/fix.php?id=42037&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=42037&r=support Expected behavior: http://bugs.php.net/fix.php?id=42037&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=42037&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=42037&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=42037&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=42037&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=42037&r=dst IIS Stability: http://bugs.php.net/fix.php?id=42037&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=42037&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=42037&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=42037&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=42037&r=mysqlcfg

« previous php.bugs (#115205) next »