《UNIX环境高级编程》笔记--文件长度和文件截短
1.文件长度stat结构的st_size成员以字节为单位表示文件的长度,此字段只对普通文件,目录文件和符号链接有意义。stat结构的st_blksize成员是对文件IO较合适的块长度,在介绍系统IO调用时,该值为4096B。stat结构的st_blocks成员是所分配的实际512字节块数量。
实践:
#include <stdio.h>#include <unistd.h>#include <fcntl.h>int main(void){ if(truncate("a.txt",10)<0){ perror("truncate"); return -1; } return 0;}运行结果:yan@yan-vm:~/apue$ ll a.txt-rw-rw-r-- 1 yan yan 5 Jul 10 07:12 a.txt
yan@yan-vm:~/apue$ ./a.out
yan@yan-vm:~/apue$ ll a.txt
-rw-rw-r-- 1 yan yan 10 Jul 10 07:15 a.txt
yan@yan-vm:~/apue$ od -c a.txt
0000000 1 2 3 4 5 \0 \0 \0 \0 \0
0000012
文件被自动填充为\0