摘要: 编程实现3人间相互通信 思路:需要防止打开管道时,陷入死锁。 总共需要建立3对管道,6个管道。每两个用户之间都有一对管道。一个用户有2个读端和2个写端。 :1 :2 :3 1-2 w 1-2 r 1-3 r 1-3 w 2-1 w 3-1 w 2-1 r 2-3 w 2-3 r 3-1 r 3-2 r 3-2 w 注意 此处每个用户,都是fork出2个子进程,总共3个进程。其中2个进程用于分别接... 阅读全文
posted @ 2014-08-22 23:24 Acjx 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 编程实现双方通信 思路 用户A 用户B 写 (管道) 读 读 (管道) 写 在之前有名管道的博文中,实现的双方一发一收即为上图所描述的。建立两条管道,一条负责由A传消息给B,另一条负责由B发消息给A。 当用户A发消息给B时,B可以立即读到消息。此时A的read为阻塞,必须等到用户B发消息给A,A读到消息后,A才可以继续发消息给B。即之前博文的程序,无法实现A连续发送消息给B。 因此在这篇文章中,我... 阅读全文
posted @ 2014-08-22 20:27 Acjx 阅读(341) 评论(2) 推荐(0) 编辑
摘要: 用有名管道实现进程A与进程B消息一发一送 程序a.c /************************************************************************* > File Name: a.c > Author: KrisChou > Mail:zhoujx0219@163.com > Created Time: Fri 22 Aug 2014... 阅读全文
posted @ 2014-08-22 17:36 Acjx 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 在讨论匿名管道之前,我们先回顾下read和write系统调用以及fgets函数 #include ssize_t read(int fd, void *buf, size_t count);当read成功时,返回值为读到的字符数。当遇见文件结尾时,返回0(也就是什么都读不出来了)。出错,返回-1。—> 参考 man 2 read#include ssize_t write(int fd, cons... 阅读全文
posted @ 2014-08-22 10:39 Acjx 阅读(302) 评论(0) 推荐(0) 编辑
摘要: /************************************************************************* > File Name: Kris_shell.c > Author: KrisChou > Mail:zhoujx0219@163.com > Created Time: Thu 21 Aug 2014 04:31:55 ... 阅读全文
posted @ 2014-08-22 09:45 Acjx 阅读(318) 评论(0) 推荐(0) 编辑