【发布时间】:2013-03-11 16:49:36
【问题描述】:
这是一个设计问题,而不是编码问题。我有一个会分叉许多孩子的父进程。每个孩子都应该在同一个文本文件上读写。
我们怎样才能安全地做到这一点?
我的想法:
在父级中创建文件指针,然后在其上创建一个二进制信号量。进程将竞争获取文件指针并写入文件。在读取的情况下,我不需要信号量。
如果我记错了请告诉我。
我在 linux 下使用 C。 谢谢。
【问题讨论】:
-
可能是一个骗局,但无论如何都值得一读 (stackoverflow.com/questions/2057784/…)
-
搜索文件和/或记录锁定,并在探索更复杂的方案之前确定这是否合适。
-
我会避免在这种情况下使用单个文本文件(因为在文本文件中间写入意味着主要插入文本,这会改变整个文件的大小和其他进程处理的偏移量)。也许分享例如
gdbm索引文件或某些数据库会更合适...