lseek的应用(p77)
格式:
- int lseek(int fp, off_t offset, int whence);
- offset:改变读写指针的偏移量(字节数),正数,负数,0。
- whence: 移动读写指针的方式:SEEK_SET, SEEK_END, SEEK_CUR
- 失败,返回-1,成功时返回新的读写指针位置。
- 指针只能向末尾偏,不能向前端偏。
获取文件长度:
ftruncate(fp,length);
int len = lseek(fp,0,SEEK_END);
代码如下:
1 #include<stdio.h>
2 #include<unistd.h>
3 #include<sys/types.h>
4 #include<sys/stat.h>
5 #include<fcntl.h>
6 #include<stdlib.h>
7
8 int main()
9 {
10 int fp = open("file2",O_RDWR,0777);
11 if(fp == -1)
12 {
13 perror("tips message:");
14 }
15 printf("fp = %d\n",fp);
16
17 int fleek_len = lseek(fp,0,SEEK_END);
18 printf("文件的长度是:%d\n",fleek_len);
19
20 int fleek_extend = lseek(fp,1000,SEEK_END);
21 printf("加长文件的长度是:%d\n",fleek_extend);
22
23 write(fp,"1111111111111",55);
24 close(fp);
25
26 return 0;
27 }