lseek函数是一个文件偏移量操作函数,用于设置文件的当前读/写位置。
下面是一个简单的示例代码,演示了如何使用lseek函数将文件指针定位到文件末尾,并在末尾添加内容:
#include <fcntl.h>
#include <unistd.h>
int main() {
const char *filename = "example.txt";
// 打开文件,如果不存在则创建
int fd = open(filename, O_WRONLY | O_CREAT, 0644);
if (fd != -1) {
const char *content = "Hello, World!\n";
// 将文件指针定位到文件末尾
off_t offset = lseek(fd, 0, SEEK_END);
if (offset == -1) {
printf("定位到文件末尾失败\n");
close(fd);
return 1;
}
// 写入内容
ssize_t bytes_written = write(fd, content, strlen(content));
if (bytes_written == -1) {
printf("写入文件失败\n");
close(fd);
return 1;
}
printf("已在文件末尾追加内容\n");
// 关闭文件描述符
close(fd);
} else {
printf("无法创建或打开文件\n");
return 1;
}
return 0;
}
上述代码中,我们首先使用open函数打开或创建指定的文件。然后,通过lseek函数将文件指针移动到相对于当前位置的偏移量为0的位置(也就是当前位置),通过指定SEEK_END参数,我们实现了将文件指针定位到文件末尾。
接下来,我们使用write函数向文件中追加内容。最后,别忘记关闭文件描述符以释放资源。
请注意,在实际应用中,还需要进行适当的错误处理和资源管理。
内容由零声教学AI助手提供,问题来源于学员提问