/* 编写一个程序,使用open系统调用打开一个已存在的文件,并使用lseek系统调用将文件指针移动到文件末尾,然后使用write系统调用将用户从控制台输入的内容追加到文件末尾 【提示】man 2 lseek 查看帮助信息 off_t lseek(int fd, off_t offset, int whence); whence: SEEK_SET, SEEK_CUR, SEEK_END */ #include #include #include #include #include #include int main(int argc, char const *argv[]) { int fd = open("a.txt", O_RDWR); // 以读写模式打开文件 if (fd < 0) { perror("open"); // 打开文件失败时打印错误信息 return -1; } if (argc != 2) { perror("usage: ./a something"); // 如果命令行参数不正确,打印使用说明 return -1; } const char *input_buf = argv[1]; // 获取用户输入的内容 off_t file_end = lseek(fd, 0, SEEK_END); // 将文件指针移动到文件末尾 char buf[1024] = ""; sprintf(buf, "%s", input_buf); // 将用户输入的内容存储在缓冲区中 int wrt = write(fd, buf, strlen(buf)); // 使用strlen获取写入的字节数 if (wrt < 0) { perror("write"); // 写入文件失败时打印错误信息 return -1; } if (close(fd) < 0) { perror("close"); // 关闭文件失败时打印错误信息 return -1; } return 0; }