首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

linux网络编程之System V 信号量(三):基于生产者-消费者模型实现先进先出的共享内存段

ERR_EXIT("shmat");         fifo->p_payload = (char *)(fifo->p_shm + 1);         fifo->sem_mutex = sem_open...(key);         fifo->sem_full = sem_open(key + 1);         fifo->sem_empty = sem_open(key + 2);     }...如果共享内存已经存在,则直接shmat映射下即可,此时3个信号量集也已经存在,sem_open 打开即可。sem_xxx 系列封装函数参考这里。...s.age);     }     shmfifo_destroy(fifo);     return 0; } 先运行生产者进程,输出如下: simba@ubuntu:~/Documents/code/linux_programming...send ok 因为共享内存只有3块block,故发送了3次后再次P(semfull)就阻塞了,等待消费者读取数据,现在运行消费者进程 simba@ubuntu:~/Documents/code/linux_programming

1.4K00
领券