打开()一个文件并在最后写入
open() a file and write at the end
我目前正在开发一个 C shell 程序,其中包含一些 pipe()
和重定向。
我使用 dup2()
stdout 和 stderr (1 & 2) 重定向。
当我用 int fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
打开一个文件时,循环打印 "---------\n"
以分离所有内容,有时它出现,有时不出现,有时它删除之前写的内容。
有人解释了吗?
我希望每个新文本都到达文件中之前写入内容的末尾。
这就是 O_APPEND
标志的用途。当文件可以随时从另一个进程更新时,您需要 O_APPEND
以确保您的 write
始终位于末尾。
我目前正在开发一个 C shell 程序,其中包含一些 pipe()
和重定向。
我使用 dup2()
stdout 和 stderr (1 & 2) 重定向。
当我用 int fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
打开一个文件时,循环打印 "---------\n"
以分离所有内容,有时它出现,有时不出现,有时它删除之前写的内容。
有人解释了吗?
我希望每个新文本都到达文件中之前写入内容的末尾。
这就是 O_APPEND
标志的用途。当文件可以随时从另一个进程更新时,您需要 O_APPEND
以确保您的 write
始终位于末尾。