我目前的任务是关于使用共享内存实现Linux
中的pipe()
。
由于这是我第一次使用信号量和共享内存(mutex
也是),我的经验为零。
有人可以通过解释其实施来阐明它吗? 谢谢
从下面的手册页开始:
共享内存
ftok
shmget
shmat
shmctl
shmdt
信号灯
sem_init
sem_wait
sem_post
这个想法是,两个不同的应用程序将使用您的管道来交换数据。这可以通过共享内存来完成。此外,还应进行一些同步(这里是信号量),以确保进程读取的数据是一致的。例如,必须阻止进程 A 写入管道,直到进程 B 从管道中读取上一次写入的数据。