手机网站制作方案,免费做视频网站,郑州开发小程序多少钱,一个网站的建设要经过哪几个阶段1:实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的#xff0c;一定要能够做到#xff0c;一个终端发送n条消息#xff0c;另一个终端一条消息都不回复都是没有问题的
终端A#xff1a;
#includemyhead.h
int main(int argc, char…1:实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的一定要能够做到一个终端发送n条消息另一个终端一条消息都不回复都是没有问题的
终端A
#includemyhead.h
int main(int argc, char *argv[])
{int varfork();if(var0){char afifo[32]./afifo;int resaccess(afifo,F_OK);if(res-1){mkfifo(afifo,0666);}int afdopen(afifo,O_WRONLY|O_TRUNC);char abuf[128]{0};int alen0;while(1){memset(abuf,0,alen);scanf(%128s,abuf);while(getchar()!10);alenstrlen(abuf);write(afd,abuf,alen);}close(afd);}else if(var0){ char bfifo[32]./bfifo;if(access(bfifo,F_OK)-1){mkfifo(bfifo,0666);}int bfdopen(bfifo,O_RDONLY);char bbuf[128]{0};int blen0;while(1){memset(bbuf,0,blen);blenread(bfd,bbuf,128);printf(B:%s\n,bbuf);}close(bfd);}else if(var0){perror(fork);return 1;}return 0;
}
ubuntuub
终端B
#includemyhead.h
int main(int argc, char *argv[])
{int varfork();if(var0){char afifo[32]./afifo;if(access(afifo,F_OK)-1){mkfifo(afifo,0666);}int afdopen(afifo,O_RDONLY);char abuf[128]{0};int alen0;while(1){memset(abuf,0,alen);alenread(afd,abuf,128);printf(A:%s\n,abuf);}close(afd);}else if(var0){char bfifo[32]./bfifo;int resaccess(bfifo,F_OK);if(res-1){mkfifo(bfifo,0666);}int bfdopen(bfifo,O_WRONLY|O_TRUNC);char bbuf[128]{0};int blen0;while(1){memset(bbuf,0,blen);scanf(%128s,bbuf);while(getchar()!10);blenstrlen(bbuf);write(bfd,bbuf,blen);}close(bfd);}else if(var-1){perror(fork);return 1;}return 0;
}效果图 2有2个.c文件1.c2.c 1.c的代码负责:从键盘输入三角形的三边长 或者 长方形的长和宽
2.c的代码负责:根据1.c 输入的数据计算三角形 或者 长方形的面积
1.c
#includemyhead.h
int main(int argc, char *argv[])
{int pipefd[2]{0};pipe(pipefd);//pipefd[0]3//pipefd[1]4;int resfork();if(res0){while(1){double data[3]{0};printf(请输入三角形的三边长或者长方形的长和宽:);scanf(%lf %lf %lf,data,data1,data2);while(getchar()!10);write(pipefd[1],data,24);sleep(1);}}else if(res0){char rfd[4]{0};sprintf(rfd,%d,pipefd[0]);execl(./2,2,rfd,NULL);perror(execl);}return 0;
}2.c:
#includemyhead.h
int main(int argc, char *argv[])
{double buf[3]{0};double area0;int rfdatoi(argv[1]);while(1){read(rfd,buf,24);if(buf[0]!0buf[1]!0buf[2]!0){double abuf[0];double bbuf[1];double cbuf[2];double p(abc)/2;double qp*(p-a)*(p-b)*(p-c);areasqrt(q);printf(三角形面积为:%f\n,area);}else if(buf[0]0){areabuf[1]*buf[2];printf(长方形面积为:%f\n,area);}else if(buf[1]0){areabuf[0]*buf[2];printf(长方形面积为:%f\n,area);}else if(buf[2]0){areabuf[1]*buf[0];printf(长方形面积为:%f\n,area);}}return 0;
}效果图 思维导图