zoukankan      html  css  js  c++  java
  • 文件和目录之文件长度

    stat结构成员st_size表示以字节为单位的文件长度。此字段只对普通文件、目录文件和符号链接有意义。

    对于普通文件,其文件长度可以是0,在读这种文件时,将得到文件结束(end-of-file)指示。

    对于目录,文件长度通常是一个数(例如16或512)的倍数。

    对于符号链接,文件长度是文件名中的实际字节数。例如:

    lrwxrwxrwx 1 root root 8 01-02 05:56 lib -> /usr/lib

    其中,文件长度8就是路径名/usr/lib的长度(注意,因为符号链接文件长度总是由st_size指示,所以它并不包含通常c语言用作名字结尾的null字符)。

    现今,大多数UNIX系统提供字段st_blksize和st_blocks。其中,第一个是对文件I/O较合适的块长度,第二个是所分配的实际512字节块的数量。在文件I/O之I/O的效率篇中,提到了当我们将st_blksize用于读操作时,读一个文件所需的时间量最少。为了效率的缘故、标准I/O库也试图以此读、写st_blksize个字节。

    应当了解到是,不同的UNIX版本其st_blocks所用的单位可能不是512字节的块。使用此值并不是可移植的。

    文件中的空洞

    空洞是由所设置的偏移量超过文件尾端,并写了某些数据后造成的。对于没有写过的字节位置,read函数读到的字节是0.

    如果使用实用程序(例如cat(1))复制这种文件,那么所有这些空洞都会被填满,其中所有实际数据字节皆填写为0.

  • 相关阅读:
    洛谷 P3391文艺平衡树 【fhq_treap】
    食物链(转自yekehe2002大神)
    TX
    黑匣子——KEY
    Splay初学习
    BZOJ2330_糖果_KEY
    BZOJ3224_普通平衡树_KEY
    BZOJ2730_矿场搭建_KEY
    BZOJ1452_Count_KEY
    初识主席树_Prefix XOR
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3502743.html
Copyright © 2011-2022 走看看