server.c
来自「本代码是linux消息机制部分的示例」· C语言 代码 · 共 49 行
C
49 行
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/stat.h> #include <sys/msg.h>#define MSG_FILE "server.c" #define BUFFER 255 #define PERM S_IRUSR|S_IWUSR struct msgtype { long mtype; char buffer[BUFFER+1]; };int main() { struct msgtype msg; key_t key; int msgid; /* 创建关键字 */ if((key=ftok(MSG_FILE,'a'))==-1) { fprintf(stderr,"Creat Key Error:%s\a\n",strerror(errno)); exit(1); } /* 创建信号量 */ if((msgid=msgget(key,PERM|IPC_CREAT|IPC_EXCL))==-1) { fprintf(stderr,"Creat Message Error:%s\a\n",strerror(errno)); exit(1); } while(1) { msgrcv(msgid,&msg,sizeof(struct msgtype),1,0); // 接受消息 fprintf(stderr,"Server Receive:%s\n",msg.buffer); // 显示消息 msg.mtype=2; msgsnd(msgid,&msg,sizeof(struct msgtype),0); // 发送消息 } exit(0); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?