reader.c
来自「LINUX C编程实战这本书附带光盘的原代码」· C语言 代码 · 共 37 行
C
37 行
#include "sharemem.h"
int main()
{
int semid, shmid;
char *shmaddr;
if ((shmid = createshm(".", 'm', SHM_SIZE)) == -1)
{
exit (1);
}
if((shmaddr = shmat (shmid, (char *)0, 0)) == (char *)-1)
{
perror ("attach shared memory error!\n");
exit (1);
}
if((semid = opensem("." ,'s')) == -1)
{
exit (1);
}
while(1)
{
printf("reader: ");
wait_sem(semid,0); /* 等待信号值为1 */
sem_p(semid,0); /* P操作 */
printf("%s\n", shmaddr);
sleep(10); /* 使writer处于阻塞状态 */
sem_v(semid,0); /* V操作 */
sleep(10); /* 等待writer进行写操作 */
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?