2012-06-04 35 views
4

我目前的任务是关于使用共享内存Linux中实现pipe()如何使用共享内存和信号量来实现管道?

由于这是我第一次使用信号量&共享内存(mutex也)我没有零经验。

有人可以解释一下它的实现吗?感谢

+3

StackOverflow不是教程网站。你了解成分概念吗?你知道共享内存是什么,以及如何同步并发访问内存?对于这些主题中的每一个,您可以在各处找到充足的资料,书籍,互联网甚至维基百科。请在进行一些背景研究后,只有在您遇到具体的绊脚石时发布问题。祝你好运! –

回答

3

开始与下面的手册页:

共享内存

ftok 
shmget 
shmat 
shmctl 
shmdt 

信号灯

sem_init 
sem_wait 
sem_post 

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