【发布时间】:2013-08-07 14:54:49
【问题描述】:
我目前正在处理一个需要我同时运行两个进程(P1 和 P2)的项目。 P1 和 P2 都有多个线程在运行。所有这些线程都应该能够写入一个受互斥锁保护的日志文件。
到目前为止我所拥有的: FILE* 是 P1 中的一个全局变量,我使用了一个互斥锁来保护它免受多个线程试图写入它的影响。这似乎工作正常。
现在我想知道如何让 P2 中的线程写入同一个日志文件,同时保护它免受同时写入尝试(来自 P1 和 P2)。我可能真的错了,但我认为如果我只是在声明日志文件指针和互斥锁后分叉,P1 中的互斥锁只会保护 P1 中线程的多次写入尝试,而 P2 中的互斥锁只会保护来自 P2 中的线程的多次写入尝试。 有没有简单的方法来解决这个问题?如果有人能帮我解决这个问题,我会非常高兴,我已经尝试了很多很多事情,但都没有成功。
编辑:我不知道 SHARED INTER-PROCESS MUTEX。当我有工作时,我会放上我的代码。
乔
【问题讨论】:
-
了解file locking。
-
或者使用共享的进程间互斥锁。
-
谢谢。我不知道进程间互斥锁。我认为它们严格来说是进程内的。我会仔细看看的!谁能告诉我为什么我的问题被否决了?是不是因为我没有显示代码?谢谢
标签: c multithreading file-io multiprocessing mutex