me_producer.c

来自「这是在linux环境下C++做的生产者和消费者问题」· C语言 代码 · 共 40 行

C
40
字号
/******************************producer.c**********************************/#include "ipc.h"int main(int arc,char *argv[]){key_t buff_key=101;/*material's key*/    int count=0;    buff_num=sizeof i;    buff_flag=IPC_CREAT|0644;    buff_key=101;    full_key=201;    empty_key=202;    pro_ex_key=301;    cons_ex_key=302;    full_value=0;    empty_value=1;    pro_ex_value=1;    cons_ex_value=1;    sem_flag=IPC_CREAT|0644;    buff_ptr=(int*)set_shm(buff_key,buff_num,buff_flag);       full_sem=set_sem(full_key,full_value,sem_flag);    empty_sem=set_sem(empty_key,empty_value,sem_flag);    pro_ex_sem=set_sem(pro_ex_key,pro_ex_value,sem_flag);    while(count++<12){        sleep(2);        operationP(empty_sem);        operationP(pro_ex_sem);        printf("producer %d sending %d\n",getpid(),((buff_ptr[0]+1)%3));        buff_ptr[0]=(buff_ptr[0]+1)%3;        operationV(full_sem);        operationV(pro_ex_sem);         }} 

⌨️ 快捷键说明

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