lseek函数的用法
时间: 2023-07-19 11:20:59 浏览: 106
lseek函数是一个用于文件偏移量控制的系统调用函数,它可以改变文件读写指针在文件中的位置,从而实现文件的随机访问。
lseek函数的用法如下:
```
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
```
参数说明:
- fd:文件描述符,指向需要操作的文件。
- offset:偏移量,表示相对于whence参数所指向的位置的偏移量。可以为正数、负数或0。
- whence:文件指针的起始位置,可以取以下值:
- SEEK_SET:表示文件指针的起始位置为文件的开头处。
- SEEK_CUR:表示文件指针的起始位置为文件的当前位置。
- SEEK_END:表示文件指针的起始位置为文件的末尾处。
lseek函数的返回值为新的文件偏移量,如果返回值为-1,则表示操作失败。
使用示例:
```
#include <unistd.h>
#include <fcntl.h>
int main()
{
int fd = open("test.txt", O_RDWR);
if (fd == -1) {
perror("open");
return -1;
}
// 将文件偏移量设置为文件末尾处
off_t pos = lseek(fd, 0, SEEK_END);
if (pos == -1) {
perror("lseek");
return -1;
}
// 在文件末尾处写入一行字符串
const char* str = "Hello, world!\n";
ssize_t ret = write(fd, str, strlen(str));
if (ret == -1) {
perror("write");
return -1;
}
close(fd);
return 0;
}
```
这个示例程序打开了一个文件,将文件偏移量设置为文件末尾处,并在文件末尾处写入一行字符串。
阅读全文