【问题标题】:open() a file and write at the endopen() 一个文件并在最后写入
【发布时间】:2016-03-01 23:29:03
【问题描述】:

我目前正在开发一个带有 pipe() 和重定向的 C shell 程序。

我使用dup2() stdoutstderr (1 & 2) 重定向。

当我打开带有int fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); 的文件并循环打印"---------\n" 以分隔所有内容时,有时会出现,有时不会,有时会删除之前写入的内容。

有人解释了吗?

我希望每个新文本都到达文件中之前写入内容的末尾。

【问题讨论】:

    标签: c shell unix stdout stdin


    【解决方案1】:

    这就是O_APPEND 标志的用途。当文件可以随时从另一个进程更新时,您需要O_APPEND 以确保您的write 始终位于末尾。

    【讨论】:

      猜你喜欢
      • 2021-03-06
      • 2023-02-07
      • 2021-03-22
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多