04.11 文件截断和空洞
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
这两个函数能够设置文件长度,如果新的长度比原来更短,则旧的内容被截断。如果新的长度比原来更长,则中间的部分会形成空洞。形成空洞的部分在被其他程序读取的时候,得到的是 0;全 0 的块可以不实际分配给文件,因此不会增加文件体积。
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
这两个函数能够设置文件长度,如果新的长度比原来更短,则旧的内容被截断。如果新的长度比原来更长,则中间的部分会形成空洞。形成空洞的部分在被其他程序读取的时候,得到的是 0;全 0 的块可以不实际分配给文件,因此不会增加文件体积。