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