producer.c

来自「自己编写的」· C语言 代码 · 共 52 行

C
52
字号
#include "op.h"int main(){	key_t key;	int shmid,semid,i,j,count=10;	char *shm;	char msg[10] = "data";	struct shmid_ds *buf;		key = ftok("/",0);	shmid = shmget(key,SIZE,IPC_CREAT | 0666);	shm = (char*)shmat(shmid,0,0);	semid = create_sem(key);	while(count--) {		sleep(1);		p_empty(semid);		sleep(1);		p_mutex(semid);		if((count%2) == 1){			for(i = 0; i < 10; i++) { 				if(shm[i] != '1') { 					shm[i] = '1';					break;				}			}		}		else {			for(i = 9; i >=0 ; i--) { 				if(shm[i] != '1') { 					shm[i] = '1';					break;				}			}		}			for(i =0; i < 10; i++)			if(shm[i] !='1')				shm[i] ='0';		v_mutex(semid);		sleep(1);		v_full(semid);		sleep(1);	}	sleep(5);	shmdt(shm);	shmctl(shmid,IPC_RMID,buf);	del_sem(semid);		return 0;}

⌨️ 快捷键说明

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