ser_c.c

来自「Linux大学上机源码学习」· C语言 代码 · 共 33 行

C
33
字号
#include <sem_op.h>main(){ struct exchange{    char buf[BUFSIZ+80];    int seq; }shm; int shmid; unsigned char *retval; int producer,consumer,i; consumer=open_semaphore_set(ftok("consumer",0),1); init_a_semaphore(consumer,0,1); producer=open_semaphore_set(ftok("producer",0),1); init_a_semaphore(producer,0,1); shmid=shmget(ftok("shared",0),sizeof(struct exchange),0666|IPC_CREAT); retval=shmat(shmid,(unsigned char *)0,0); for(i=0;;i++){   printf("enter some text:");   fgets(readbuf,BUFSIZE,stdin);   semaphore_P(consumer);   shm->seq=i;   sprintf(shm->buf,"message %4d from producer%d is\"%s\"\n",i,getpif(),readbuf);   semaphore_V(producer);   if(strcmp(readbuf,"end",3)==0)       break;}exit(0);}    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?