【发布时间】:2017-09-22 22:58:14
【问题描述】:
在我的程序中,我在 main 函数中使用 fork 来创建 2 个进程。子进程做某事,父进程再次分叉,他的子进程调用另一个函数。两个函数都写入 1 个文件,一切正常。
我需要的是在两个函数和所有进程(两个函数都创建进程)完成后在文件末尾写一些东西。
我试图在 main 中的任何地方编写 fprintf 命令,它总是写在文件中间的某个地方,所以我认为 main 可能与 2 个函数并行运行。
我尝试使用信号量
s = sem_open(s1, o_CREATE, 0666, 0);
这样:在每个函数的末尾我写了sem_post(s),在main中我写了sem_wait(s); sem_wait(s);,之后我写了fprintf命令,但它也没有用。
有什么办法可以解决这个问题吗?
谢谢
【问题讨论】:
-
使用
fork不是并行处理 - 这是不正确的术语。