我的当前任务涉及使用共享内存实现Linux
中的pipe()
。
由于这是我第一次使用信号量和共享内存(也有mutex
),我对此毫无经验。
能否有人提供解释并说明其实现方法?谢谢。
我的当前任务涉及使用共享内存实现Linux
中的pipe()
。
由于这是我第一次使用信号量和共享内存(也有mutex
),我对此毫无经验。
能否有人提供解释并说明其实现方法?谢谢。
以下是相关的man手册:
共享内存
ftok
shmget
shmat
shmctl
shmdt
信号量
sem_init
sem_wait
sem_post
这个想法是,两个不同的应用程序可以使用管道来交换数据。这可以通过共享内存来实现。还需要进行一些同步(这里就需要使用信号量),以确保进程读取的数据是一致的。例如,您必须阻止进程A向管道写入数据,直到进程B从先前的写入中读取了数据。