📄 msghos.c
字号:
//host file#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<time.h>struct my_msg{ long int msg_type; struct data { pid_t pidno; char text[1024]; }msgdata;};int main(){ time_t timep; int running=1; struct my_msg somedata; struct my_msg someadata; int msgids; pid_t pid; int msgidr; char buffer[BUFSIZ]; msgidr=msgget((key_t)1234,0666|IPC_CREAT); if(msgidr==-1) { perror("creat:\n"); exit(1); } msgids=msgget((key_t)1233,0666|IPC_CREAT); if(msgids==-1) { perror("creat:\n"); exit(1); } while(running) { if(msgrcv(msgidr,(void *)&someadata,BUFSIZ,1,0)==-1) { perror("rece failure:\n"); exit(1); } printf("client pid is %d: text is %s\n",someadata.msgdata.pidno,someadata.msgdata.text); somedata.msg_type=someadata.msgdata.pidno; somedata.msgdata.pidno=getpid(); time(&timep); strcpy(somedata.msgdata.text,ctime(&timep)); if(msgsnd(msgids,(void *)&somedata,sizeof(struct data),0)==-1) { perror("send failure:\n"); exit(1); } if(strncmp(someadata.msgdata.text,"end",3)==0) { running=0; } } exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -