📄 server.c
字号:
#include "key.h"void term_handler(int);COMM_TABLE * comm_reg;int main (int argc,char ** argv){ key_t key; int shm_id; if(argc!=2){ printf("you should give some parameter!\n"); exit(1); } if(strlen(argv[1])>=20){ printf("invalid parameter!\n"); exit(1); } signal(SIGINT,term_handler); key=ftok("~/tmp",1); /* create a share memory if not exist */ if((shm_id=shmget(key,sizeof(COMM_TABLE),IPC_CREAT|SHM_R|SHM_W))==-1){ /* share memory has exist */ if((shm_id=shmget(key,sizeof(COMM_TABLE),SHM_R|SHM_W))==-1){ printf("shmget error %d \n",errno); exit(2); } } if((comm_reg=(COMM_TABLE *)shmat(shm_id,0,0))==(COMM_TABLE *)-1){ printf("shmat error %d \n",errno); exit(3); } bzero(comm_reg,sizeof(COMM_TABLE)); printf("Share memory id is %d\n",shm_id); printf("share memory attached from %x to %x\n",comm_reg,\ comm_reg+sizeof(COMM_TABLE)); comm_reg->is_available=0; sleep(10); //comm_reg->tc_number=atoi((const char *)argv[1]); //strcpy(comm_reg->message,argv[1]); comm_reg->is_available=1; pause();}void term_handler(int signo){ if(signo==SIGINT){ comm_reg->is_available=0; exit(0); }}/* END OF FILE server.c */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -