我目前正在开发一个带有pipe()
和重定向的C shell程序。
我使用dup2()
stdout 和 stderr (1& 2)进行重定向。
当我用int fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
打开一个带有循环的文件来打印"---------\n"
以便在某些时候出现所有内容,有时它不会,有时会删除之前写的内容。
有人有解释吗?
我希望每个新文本都到达文件中之前写入的内容的末尾。
答案 0 :(得分:3)
这就是O_APPEND
标志的含义。当文件可以随时从其他进程更新时,您需要O_APPEND
以确保您的write
始终在最后。