Subject: Re: bug#19969: problem: wc -c doesn't read actual # of bytes in file

From: Eric Blake <[email-masked]>
Date: Mon, 02 Mar 2015 06:57:02 -0700

On 02/28/2015 01:59 AM, Linda Walsh wrote:
> (coreutils-8.21-7.7.7)
> 
> wc -c(bytes) doesn't seem to reliably read the number
> of bytes in a file.
> 
> I was wanting to find out what the largest data-source
> files in '/proc' and '/sys' (didn't get around to trying
> /sys, since all the files under /proc/sys return 0 bytes.

The Linux kernel is notoriously bad about advertising 0-length file size
for non-empty contents of files within sysfs and procfs.  Any program
that trusts just stat() output will report 0; the only way to see
non-zero sizes on these special files is to open() and read() them (I'm
not even sure if lseek(SEEK_END) does the trick) - but fixing that is
something for the kernel folks to do, and not coreutils to work around,
because it is more than coreutils that is affected by the kernel's lies.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org