📄 consumer.c
字号:
#include "op.h"int main(){ key_t key; int shmid,semid,count = 10,j = 1,k,i; char *shm; char msg[10] = {'0','0','0','0','0','0','0','0','0','0'}; key = ftok("/",0); shmid = shmget(key,SIZE,0); if(-1 == shmid) { printf(" creat shared memory error\n"); exit(-1); } shm = (char*)shmat(shmid,0,0); if(-1 == (int)shm) { printf("attach shared memory error\n"); exit(-1); } semid = get_sem(key); while(count--) { p_full(semid); sleep(1); p_mutex(semid); sleep(1); memcpy(msg,shm,sizeof(msg)); printf("%d times\n",j++); printf("consumed before:"); for(k = 0; k < 10; k++) printf("%c ",msg[k]); printf("\n"); for(i = 0; i < 10; i++) { if(msg[i] =='1') { msg[i] = '0'; break; } } printf("consumed later: "); for(k = 0; k < 10; k++) printf("%c ",msg[k]); printf("\n"); memcpy(shm,msg,sizeof(msg)); v_mutex(semid); sleep(1); v_empty(semid); sleep(1); } shmdt(shm); return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -