如何使用共享内存和信号量实现管道?

时间:2012-06-04 09:58:42

标签: c linux pipe shared-memory

我目前的任务是使用共享内存pipe()中实施Linux

因为这是我第一次使用信号量&共享内存(mutex)我对它没有经验。

有人可以解释一下它的实施情况吗?谢谢

1 个答案:

答案 0 :(得分:3)

从下面的手册页开始:

共享内存

ftok
shmget
shmat
shmctl
shmdt

<强>信号灯

sem_init
sem_wait
sem_post

这个想法是,两个不同的应用程序将使用您的管道来交换数据。这可以通过共享内存来完成。还应该进行一些同步(这里是信号量),以确保进程读取的数据是一致的。例如,您必须阻止进程A写入管道,直到进程B从上一次写入中读取管道中的数据。

相关问题