gpt4 book ai didi

c - 是否可以同时在两个不同的程序中写入(或首先打开)磁盘文件?

转载 作者:太空狗 更新时间:2023-10-29 16:07:48 26 4
gpt4 key购买 nike

我需要根据可能同时运行的两个不同模块产生的消息更新日志文件。

那么是否可以在两个程序中同时打开和写入一个文件呢?

系统规范:SLES 11 x86_64。

最佳答案

您可以执行以下操作之一:

  • 使用 flock()(或类似机制)同步打开文件描述符上的写入(如前所述)。
  • 在支持(甚至强制执行)排他性 open() 的系统上重复使用 open()close()(或类似的) .
  • 依靠缓冲输出不间断地发送日志行。这通常与 stderr 日志一起使用,因为可能的竞争条件在这里通常不是问题。
  • 使用日志记录服务并且仅open() 那里的文件。其他进程通过 IPC 与日志服务通信。您可以使用自定义日志记录服务或类似 syslogjournald 的工具。它们 AFAIK 都支持来自非根进程的日志记录。

我个人更喜欢最后一个选项,因为它的设计是最简洁的,而且不太依赖于特定于操作系统的行为。如果您的应用程序由多个由主进程启动的进程组成,那么主进程也可以作为日志记录服务执行,并在生成子进程之前创建管道。如果进程是单独启动的,您可以有一个单独的服务来监听 TCP/IP 套接字或(如果您的系统支持)本地域套接字。

关于c - 是否可以同时在两个不同的程序中写入(或首先打开)磁盘文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19379766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com