SEEK_END
是一个常量,通常在 C 语言的文件操作中使用,尤其是在使用 lseek()
函数时。它用于指示要移动到文件末尾的位置。
使用场景
在调用 lseek()
函数时,可以传入三个参数:
- 文件描述符(通常由
open()
返回)。 - 偏移量(一个整数值,可以是正数、负数或零)。
- 参考点(可以是
SEEK_SET
、SEEK_CUR
或SEEK_END
)。
当使用 SEEK_END
时,偏移量是相对于文件末尾的。例如:
- 如果你想移动到文件末尾,你可以传递偏移量为 0 和
SEEK_END
。 - 如果你想从文件末尾向前移动 N 个字节,则可以传递偏移量为 -N 和
SEEK_END
。
示例代码
以下是一个简单的示例,演示如何使用 SEEK_END
:
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main() {
int fd = open("example.txt", O_RDONLY);
if (fd == -1) {
perror("Error opening file");
return -1;
}
// 移动到文件末尾
off_t offset = lseek(fd, 0, SEEK_END);
if (offset == (off_t)-1) {
perror("Error seeking in file");
close(fd);
return -1;
}
printf("File size: %lld bytes\n", (long long)offset);
close(fd);
return 0;
}
在这个例子中,lseek(fd, 0, SEEK_END)
会将文件指针移动到 “example.txt” 文件的末尾,并返回该文件的大小。
内容由零声教学AI助手提供,问题来源于学员提问