⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 semcons.c

📁 word count information using message queues
💻 C
字号:
/*gcc -o con semcons.c./conthis is better otherwise some error is coming*/#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/sem.h>#include<string.h>#define BUF "temp"               //check this#define SEM1 0#define SEM2 1union semun	{	int val;	struct semid_ds *buf ;	ushort *array;	};int main(){printf("sayooj\n");struct sembuf acquire ={0,-1,SEM_UNDO};struct sembuf release ={0,1,SEM_UNDO};key_t uniqkey;uniqkey=ftok(".",'A');int semid=semget(uniqkey,2,0);                           //dont create it again .open already existingif(semid==-1)	{	printf("error in making semaphore\n");	} FILE *fp;int i=0;while(1){//printf("generating %d \n",i);acquire.sem_num=SEM2;if(semop(semid,&acquire,1)==-1)	{	printf("waiting for producer to make something new \n");	}fp=fopen(BUF,"r");if(fp==NULL)	{	printf("error filepointe\n");	}fscanf(fp,"%d",&i);//i++;fclose(fp);release.sem_num=SEM1;printf("number read %d by %d\n",i,getpid());if(semop(semid,&release,1)==-1)	{	printf("no more numbers seen \n");	exit(1);	}sleep(1);}return 0;}

⌨️ 快捷键说明

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