Bug #15260 Updated: file_exists doesn't work with 2G+ files
| From: | mrobinso@php.net | Date: | Tue, 29 Jan 2002 01:43:46 +0000 |
| Subject: | Bug #15260 Updated: file_exists doesn't work with 2G+ files | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-78387@lists.php.net to get a copy of this message | ||
ID: 15260
Updated by: mrobinso
Old Summary: file_exists doesn't work with 2G+ files
Reported By: wweng@kencast.com
Status: Feedback
Bug Type: *Directory/Filesystem functions
Operating System: Linux
PHP Version: 4.0.5
New Comment:
If the OS is compiled and installed on a 64 bit system,
or with large file support (read: kernel, libc, others)
then calls to stat() and friends return 64-bit structures. You don't
need to call stat64 expressly. A stock RedHat-7.2
box isn't 64bit compliant unless it's compiled that way.
The VCWD_STAT macro uses stat(path, buff), not
stat(path, mode). I've had a look at stat.h and see
the references to stat64(path, buff) if large file
support is defined, but I'm in a little over my head
here, so I bow to jan@php.net's mastery of php
internals. :)
I don't have access to a 64bit box or fs to confirm, so I guess I
jumped the gun on this one, but IMHO, this isn't a
PHP *bug*.
Sorry for the confusion.
Previous Comments:
------------------------------------------------------------------------
[2002-01-28 15:44:49] wweng@kencast.com
I believe I had found the reason of this bug.
file_exists function ultimately calls VCWD_STAT function defined in
TSRM/tsrm_virtual_cwd.h. However, the VCWD_STAT function is only a
macro for stat(path, mode), and under Linux, you need stat64 for 64 bit
file stats operations.
hmm, and all the file I/Os under PHP right now do not support 64 bits.
This is bad...
------------------------------------------------------------------------
[2002-01-28 15:26:54] wweng@kencast.com
Can not seem to find the RPM(php-4.1.1) for Redhat 7.2. :(
There is no build environment on testing machines.
------------------------------------------------------------------------
[2002-01-28 15:17:05] jan@php.net
and then again, can you please test with a more recent PHP release?
------------------------------------------------------------------------
[2002-01-28 15:15:54] wweng@kencast.com
Where can I (and how do I) get the source code to file_exists function?
------------------------------------------------------------------------
[2002-01-28 15:15:00] wweng@kencast.com
Actually, I do have a 4Gig file on the file system. (Since we used the
64bit file operation for our software on all our file I/O)
[root@ECTWO root] ls -la /opt/incoming
total 4399256
drwxrwxr-x 2 **** **** 4096 Jan 28 13:35
drwxr-xr-x 5 root root 4096 Jan 28 10:44
-rw-rw-r-- 1 **** **** 4499238984 May 10 2001 BigPackage.fpk.pck
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/?id=15260
Edit this bug report at http://bugs.php.net/?id=15260&edit=1