
On Wed 2014-10-08 14:08:45, Suriyan Ramasami wrote:
On Wed, Oct 8, 2014 at 1:35 PM, Pavel Machek pavel@denx.de wrote:
On Wed 2014-10-08 13:23:48, Suriyan Ramasami wrote:
The commands fatls/ext4ls give -ve values when dealing with files > 2GB. The commands fatsize/ext4size do not update the variable filesize for these files.
To deal with this, the functions *_size have been modified to take a second parameter of type "* off_t" which is then populated. The return value of the *_size function is then only used to determine error conditions.
Would not it be better to simply change return type of affected functions to off_t?
(If off_t is unsigned, invent signed off_t. It is still nicer than extra parameter.)
off_t is 32 bits in 32 bit architectures. So, signed or unsigned it shall always have a case where it will be impossible to detect a valid file size vs an error condition, right? For example if we return 0xFFFFFFFF, is that an error condition or the actual file size? Another approach would be to make the return value off64_t, but then in sandbox cases we will hit the same issue of differentiating a valid file size vs an error condition (although we possibly would never have such a huge file)
I'd just make it off64_t. Because otherwise you fixed files in 2GB..4GB range, but still have problems for >4GB files.
Pavel