server.c

来自「linux下面的文件锁和信号量的程序」· C语言 代码 · 共 49 行

C
49
字号
/*******************************************************************	File:server.c*	Description:server of an test program for IPC using semaphore*	Author:Luke Huang*	Date:Jun. 14th 2002******************************************************************/#include "key.h"int main(int argc,char ** argv){	int exp_opt,oflag,semid,nsems;	union semun arg;	ushort * ptr;	struct semid_ds seminfo;	oflag=SEM_MODE|IPC_CREAT;	/*	while((exp_opt=getopt(argc,argv,"e"))!=-1){		switch(exp_opt){			case 'e':				oflag|=IPC_EXCL;			break;			default:				;		}	}	if(optind!=argc-2){		printf("usage:server [-e] <pathname> <nsems>\n");		exit(1);	}	*/	//nsems=atoi(argv[optind+1]);	//nsems=2;	if((semid=semget(ftok(KEY_PATH,KEY_ID1),2,oflag))==-1){		perror("semget erro!\n");		exit(1);	}	printf("semaphore id is %d \n",semid);	arg.buf=&seminfo;	semctl(semid,0,IPC_STAT,arg);	nsems=arg.buf->sem_nsems;	printf("Semaphore number is %d \n",nsems);	arg.array=ptr;	ptr[0]=atoi(argv[1]);	ptr[1]=atoi(argv[2]);	semctl(semid,0,SETALL,arg);	exit(0);}/* END OF FILE:server.c */

⌨️ 快捷键说明

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