Re: fopen('.', 'r') succeedes !?
| From: | Jeffry Killen | Date: | Mon, 02 Mar 2015 06:56:37 +0000 |
| Subject: | Re: fopen('.', 'r') succeedes !? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-324562@lists.php.net to get a copy of this message | ||
On Mar 1, 2015, at 9:07 PM, Umberto Salsi wrote:
Discovered today: fopen() opens '.' and '..' but fread() returns nothing without errors nor end-of-file, so this loop: $f = fopen('.', 'r'); if( $f === FALSE ) die("fopen failed"); $n = 0; while(($s = fread($f, 10)) !== FALSE)Well . is an alias for the current directory, so it would be expected to work from the the directory your script is in. By Vista do you mean Windows Vista? I don't believe that Windows uses . for the current directory, but I have never worked on a Windows platform. I just know that it uses '\ ' for path separator. Also .. is an alias for the parent directory of the current directory, so what is being listed is the parent directory of the the directory your script is in. As well Windows, I don't think, uses .. as an alias for the parent directory. . & .. are standard on any unix workalike platform such as Linux. JK$n += strlen($s);fclose($f); echo "total bytes read: $n\n"; never ends! The same happens with '..'. Tested on PHP 5.6.3 and 7.0.0 under Slackware 14.1 32-bits. Under Vista, instead, fopen() fails as expected. Bug or specific feature under Linux? Regards, ___ /_|_\ Umberto Salsi \/_\/ www.icosaedro.it