Hello,
I've been going back and forth for a bit trying to figure out this
situation, and I am hoping that someone on this list will have some
insight :)
When using php's disk_free_space() function to determine the amount
of free space on a partition that has a negative amount of free
space, PHP returns an unreasonably large number, for example:
[EMAIL PROTECTED] php -r 'var_dump(disk_free_space("/some/partition/
with/negative/free/space"));'
float(3.7778931863E+22)
this is the comment from one of the PHP developers who has been
helping me to debug this issue:
Well, this is actually quite interesting.
The problem is that according to POSIX statvfs struct's field
f_bavail must be <unsigned long>.
But FreeBSD stores negative values in this field and I don't see
any hint on how to detect if this is a negative value or just a
huge positive one.
I can of course cast it to signed long, but that would effectively
break it on other platforms, which do conform POSIX standard and do
not store negative values in unsigned variables.
I guess FreeBSD developers might help here, since that should be a
known problem for them.
as well as:
I can see that libstatgrab uses #ifdef's for all *BSD flavours and
casts f_bavail to (long long).
Not sure if this is the correct solution, my previous suspicions
that it may not work with really big filesystems still aply.
Thanks in advance for any insight you may have!
-Adam
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"