stat结构成员st_size表示以字节为单位的文件的长度。此字段只对普通文件、目录文件和符号链接有意义。
对于普通文件,其文件长度可以是0,在开始读这种文件时,将得到文件结束(end-of-file)指示。对于目录,文件长度通常是一个数(16或512)的整倍数,我们将在4.22节中说明读目录操作。
对于符号链接,文件长度是在文件名中的实际字节数。例如,在下面的例子中,文件长度7就是路径名usr/lib的长度:
现今,大多数现代的UNIX系统提供字段st_blksize和st_blocks。其中,第一个是对文件I/O较合适的块长度,第二个是所分配的实际512字节块数。回忆3.9节,其中提到了当我们将st_blksize用于读操作时,读一个文件所需的时间量最少。为了提高效率,标准I/O库也试图一次读、写st_blksize个字节。