?? producer.c
字號(hào):
#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/shm.h>#include "shm_com.h"int main(){ int running = -1; void *shared_memory = (void *)0; struct shared_use_st *shared_stuff; char buffer[BUFSIZ]; int shmid; shmid = shmget((key_t)1234,sizeof(struct shared_use_st),0666|IPC_CREAT); if(shmid == -1) { fprintf(stderr,"shmget failed\n"); exit(EXIT_FAILURE); } shared_memory = shmat(shmid,(void *)0,0); if(shared_memory==(void *)-1) { fprintf(stderr,"shmat failed\n"); exit(EXIT_FAILURE); } printf("Memory attched at %X\n",(int)shared_memory); shared_stuff = (struct shared_use_st *)shared_memory; while(running) { while(shared_stuff->written_by_you ==1) { sleep(1); printf("waiting for client...\n"); } printf("Enter some text: "); fgets(buffer,BUFSIZ,stdin); strncpy(shared_stuff->some_text,buffer,TEXT_SZ); shared_stuff->written_by_you=1; if(strncpy(buffer,"end",3)==0) { running=0; } } if(shmdt(shared_memory)==-1) { fprintf(stderr,"shmdt failure\n"); exit(EXIT_FAILURE); } exit(EXIT_SUCCESS);}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -