🔺举例:事先在已创建的文件file1中写入12345678,O_CREAT后跟上O_APPEND后,结果就会在原文件内容12345678后换行跟上字符串“hello world!”
时间: 2024-12-08 16:18:04 浏览: 20
在Unix/Linux操作系统中,当你使用`open()`函数打开一个文件,并指定标志`O_CREAT | O_APPEND`,意味着如果文件不存在则会创建它,而每次写入数据时都会追加到文件的末尾,而不是覆盖原有的内容。例如,在C语言中,可以这样做:
```c
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
int main() {
int fd = open("file1", O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR); // 打开并准备追加
if (fd == -1) {
perror("Failed to open file");
return 1;
}
char* data = "hello world!\n"; // 要追加的数据,这里加上了换行符\n
ssize_t bytes_written = write(fd, data, strlen(data)); // 写入数据
if (bytes_written == -1) {
perror("Failed to write to file");
close(fd);
return 1;
}
close(fd); // 关闭文件描述符
printf("Data appended successfully.\n");
return 0;
}
```
在这个例子中,如果`file1`已经存在并且有内容`12345678`,那么运行程序后会在原有内容后追加一行新的文本:“hello world!”。
阅读全文