linux下的一对多管道程序编写
答案:2 悬赏:20 手机版
解决时间 2021-02-06 23:49
- 提问者网友:杀手的诗
- 2021-02-06 16:01
我需要做一个记名管道程序 一(父)对三(子)父方检测三个子方接收端等三秒 发送SIGINT信号给三个子方 最终显示信息“see you" 求各位帮个忙 我知道有点麻烦但是本人实在是不懂了 舔着脸跪求高手帮忙 万分感谢!!!!
最佳答案
- 五星知识达人网友:山有枢
- 2021-02-06 16:12
先学如何编写父子进程。
再学如何使用管道在父子进程之间通信。
最后学习如何发送信号。
再学如何使用管道在父子进程之间通信。
最后学习如何发送信号。
全部回答
- 1楼网友:骨子里都是戏
- 2021-02-06 16:57
一个利用pipe,进行父子进程间通信的小例子
#include
#include
#include
#include
int main(void)
{
int fds[2];
pid_t pid;
if(pipe(fds) == -1)
{
perror("pipe error");
exit(1);
}
pid=fork();
if(pid == -1)
{
perror("fork error");
exit(1);
}
if(pid == 0)//parent
{
char buf[1024];
int n;
close(fds[1]);
n = read(fds[0], buf, 1024);//从管道读端读出数据到buf
write(stdout_fileno, "child:",6);
write(stdout_fileno, buf, n);//将读到的数据打印到终端
}
else//child
{
close(fds[0]);
write(fds[1], "hello world\n", 12);//向管道写端写入数据“hello world\n”
wait(null);
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯