大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说lseek(lseek函数),希望您对编程的造诣更进一步.
Lseek函数原型 off_t lseek(int fd, off_t offset, int whence); 它返回的是一个偏移值
Fd:文件描述符;
Offset:偏移量
Whence:起始偏移位置:SEEK_SET/SEEK_CUR/SEEK_END
返回值:
成功:较其启始位置偏移量
失败:-1 errno
如下是使用该函数的一个demo:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<fcntl.h>
Int main(void)
{
Int fd,n;
Char msg[] = “It’s a best for search\n”;
Fd = open(“lseek.txt”,|O)RDWR|O_CREAT,0644)
If( fd < 0){
Perror(“open fail!”);
Exit(1);
}
Write(fd,msg,strlen(msg));
Lseek(fd,0,SEEK_SET) ;//修改文件读写指针位置
While( (n = read(fd, &ch,1)))
{
If(n <0){
Perror(“read error!”);
Exit(1);
}
Write(STDOUT_FILED, &che,n);
}
Close(fd);
Return 0;
}
应用场景:
1. 文件的“读”,“写”使用同一偏移位置。
2. 使用lseek获取文件大小,拓展文件大小,要想使文件大小真正拓展,必须
引起IO操作。
使用truncate函数,直接拓展文件
传入参数
1. 指针作为函数参数。
2. 通常有const关键字修饰
3. 指针作为有效参数传入,在函数内部做读操作。
传出参数
1. 指针作为函数参数。
2. 在函数调用之前,指针指向的空间可以无意义,但是必须有效
3. 在函数内部,做写操作
4. 函数调用结束后,充当返回值
传入传出参数
1. 指针作为函数参数
2. 在函数调用之前,指针指向的空间有实际意义
3. 在函数内部,先做读操作,后做写操作
4.函数调用结束后,充当函数返回值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/30912.html