C - fork()和共享内存

Che*_*tah 13 c fork ipc shared-memory

我需要我的父进程和子进程能够读取和写入相同的变量(类型为int),因此它在两个进程之间是"全局的".

我假设这会使用某种跨进程通信,并且在一个进程上有一个变量正在更新.

我做了一个快速谷歌和IPC和各种技术出现,但我不知道哪个是最适合我的情况.

那么什么技术是最好的,你可以提供一个链接到它的noobs教程.

谢谢.

sum*_*ame 16

既然你提到使用fork(),我假设你生活在一个*nix-System上

来自Unix.com

使用UNIX IPC在进程之间共享数据的主要方法是:

(1)共享记忆;

(2)插座:

还有其他UNIX IPC包括

(3)消息队列.

(4)信号量;

(5)信号.

您最好的选择(对于IPC)是根据您的帖子使用共享内存段.您可能需要使用信号量来确保共享内存操作是原子的.

关于分叉和共享内存的教程正在开发中:

http://forums.devshed.com/c-programming-42/posix-semaphore-example-using-fork-and-shared-memory-330419.html

关于使用多线程的另一个更深入的描述(如果适用于您的应用程序)可以在这里找到:

https://computing.llnl.gov/tutorials/pthreads/

  • 这里有可疑类似的文字(您可能想要链接以获得信用?):http://www.unix.com/programming/857-fork-ipc.html (2认同)