繁体   English   中英

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

[英]How to implement a pipe using shared memory and semaphores?

我目前的任务是关于在Linux使用共享内存实现pipe()

由于这是我第一次使用信号量和共享内存(也就是mutex量),我对它没有任何经验。

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

从下面的手册页开始:

共享内存

ftok
shmget
shmat
shmctl
shmdt

信号灯

sem_init
sem_wait
sem_post

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM