📄 client3.c
字号:
#include<stdio.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>key_t key,key2;#define key 18#define key2 28#define MSGSIZ 256FIFEstruct msgbuf2{ long mtype; int count; char mtext[MSGSIZ]; float price; char name[10];};int main(){ int msqid1,msqid2; float price; struct msgbuf2 sndbuf,revbuf; while((msqid1=msgget(key,0666))==-1); while((msqid2=msgget(key2,0666))==-1); while(1) { lockf(sndbuf,1,0); lockf(revbuf,1,0); printf("buy tickets:"); scanf("%d",&sndbuf.mtype); printf("number:"); sndbuf.price=0.0; sndbuf.name[0]='0'; scanf("%d",&sndbuf.count); if(msgsnd(msqid1,&sndbuf,sizeof(sndbuf)-sizeof(sndbuf.mtype),0)==-1) { printf("msg send error\n"); } if(msgrcv(msqid2,&revbuf,sizeof(sndbuf)-sizeof(revbuf.mtype),0,0)==-1) { printf("msg receive error!\n"); } if(revbuf.count<0) { printf("%s",revbuf.mtext); continue; } printf("charge client %f yuan on this trade\n",revbuf.price); printf(" tickets %d %s--------%d tickets left\n",revbuf.mtype,revbuf.name,revbuf.count); lockf(sndbuf,0,0); lockf(revbuf,0,0); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -