The stat-size module provides a small number of macros
intended for interpreting the file size information in an instance of
struct stat.
On POSIX systems, the st_blocks member of struct stat
contains the number of disk blocks occupied by a file. The
ST_NBLOCKS and STP_NBLOCKS macros
estimate this quantity on systems
which don’t actually have st_blocks. Each of these blocks
contains ST_NBLOCKSIZE bytes.
The value of ST_NBLOCKSIZE is often quite small, small enough
that performing I/O in chunks that size would be inefficient.
The ST_BLKSIZE and STP_BLKSIZE macros
give the I/O block size recommended for I/O to this
file. This is not guaranteed to give optimum performance, but it
should be reasonably efficient.