📄 shrdmemcon.c
字号:
#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<unistd.h>#include<sys/shm.h>#include<sys/sem.h>#include<sys/ipc.h>#include<string.h>#define SIZE 1000union semun { int val; struct semid_ds *buf; ushort *array; };int main(){printf("sa\n");char *msg,*data;key_t uniqkey;uniqkey=ftok(".",'J');int shmid,semid;shmid=shmget(uniqkey,SIZE,IPC_CREAT|0644);if(shmid==-1) { printf("error in creating shared memory \n"); }msg=shmat(shmid,(void *)0,0);semid=semget(uniqkey,2,0);if(semid==-1) { printf("error in making semaphore \n"); }struct sembuf acquire={0,-1,SEM_UNDO};struct sembuf release={0, 1,SEM_UNDO};int ch=0;while(ch<5){acquire.sem_num=1;if(semop(semid,&acquire,1)==-1) { printf("error in acquiring \n"); }printf("msg has %s \n",msg); //using shared memoryrelease.sem_num=0;if(semop(semid,&release,1)==-1) { printf("error in releasing \n"); }//sleep(7);ch++;}sleep(3);if(shmdt(msg)== -1) { printf("error in detaching \n"); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -