标签:只读 ssi 查看 erro 相关 原因 tde lse printf
改变文件大小的函数
相关函数 open
1 #include <unistd.h> 2 int truncate(const char * path, off_t length); 3 int ftruncate(int fd, off_t length);
file_truncate.c
1 #include <unistd.h> 2 #include <fcntl.h> 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <errno.h> 6 7 int main(int argc, char *argv[]) 8 { 9 if(argc < 3) 10 { 11 fprintf(stderr, "usage: %s file length\n", argv[0]); 12 exit(1); 13 } 14 15 //判断文件是否有写的权限 16 if(access(argv[1], W_OK) < 0) { 17 perror("write permission error"); 18 exit(1); 19 } 20 21 //将文件截短为传入的长度 22 if(truncate(argv[1], atoi(argv[2])) < 0) { 23 perror("truncate error"); 24 exit(1); 25 } 26 27 //查看文件长度 28 int fd = open(argv[1], O_RDONLY); 29 if(fd < 0) { 30 perror("open error"); 31 exit(1); 32 } 33 34 long len = lseek(fd, 0L, SEEK_END); 35 printf("file length: %ld\n", len); 36 close(fd); 37 38 return 0; 39 }
编译运行:
标签:只读 ssi 查看 erro 相关 原因 tde lse printf
原文地址:https://www.cnblogs.com/kele-dad/p/9062249.html