问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux 创建父进程和子进程并通信问题

发布网友 发布时间:2022-04-25 20:24

我来回答

2个回答

热心网友 时间:2022-06-17 03:29

看我下面的程序,还有问题可以 hi我

#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, const char *argv[])
{
int pid, pfd[2], seq;

if (argc != 2)
{
printf("Usage:\t %s num\n", argv[0]);
return 1;
}

seq = atoi(argv[1]);
if (seq <= 0)
{
printf("Error: seq shall be larger than 0.\n");
return 1;
}

pid = fork();
if (pid == 0)
{
/* child 1 */
execlp("/bin/ls", "/bin/ls", "-R", ".", NULL);
}
else if (pid > 0)
{
wait(NULL);
printf("\n\nThis is parent process, child 1 finished.\n");
}

/* create pipe */
pipe(pfd);
pid = fork();

if (pid == 0)
{
/* child 2 */
int next = 1, i, fib = 0, tmp;
close(pfd[0]);
for (i = 0; i < seq; i++)
{
write(pfd[1], &fib, sizeof(fib));
tmp = fib;
fib = next;
next += tmp;
}
/* -1 indicates the end of fibonacci seq */
fib = -1;
write(pfd[1], &fib, sizeof(fib));
return 0;
}
else if (pid > 0)
{
/* parent */
int fib;

close(pfd[1]);
wait(NULL);

printf("In parent process, child 2 finished, time to print fibonacci sequence...\n");
while (read(pfd[0], &fib, sizeof(fib)) == sizeof(fib))
{
if (fib >= 0)
{
printf("%4d ", fib);
}
else
{
printf("\n");
break;
}
}
printf("\n All DONE!\n");
}

return 0;
}

热心网友 时间:2022-06-17 03:30

5
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
win7窗口淡入淡出慢 iPhone 小技巧:如何将 Safari 浏览器中的网页添加到桌面? 锰粉是什么颜色的金属 铁精粉的常见颜色是什么 烟花爆竹中的金属粉末如何使其呈现绚丽色彩? 金粉有哪些种类 灰土每层回填最大厚度 灰土基础简史 如何让一个喜欢你的女孩讨厌你! 西环里新区基本资料 so they brought the dog to a doctor for animals b my dog is so quiet 在Linux系统中编写 C程序,创建一个子进程。父进程和子进程交替运行。父进程先显示一次“Current time: 求英语翻译dog eats dog Linux关于创建子进程并用execlp()系统调用执行程序的实验。反复执行该程序,次序好乱啊,没有章理??? 在linux中创建子进程,在子进程中执行exec函数前通过管道向子进程传递exec函数所执行的新程序 dog和so的发音相同吗? linux怎么创建子目录 都来翻译这个句子吧 看!那只小狗真可爱. look! that dog()so() thanks for sending me so cute a dog 请教linux下fork()创建子进程 so的o和dog的o发音一样吗? linux关于子进程的创建,先让子进程输出当前所在位置,再让父进程在当前... dog so hot body哪个读音不同? linux 父进程创建子进程的例子 向高手求助:关于linux中父进程创建子进程的问题 网站打不开,域名是在国外madog域名网站注册,点击英文中所说链接不起作用,请高手支招 Linux中为什么要创建子进程? So,dog,hot发音是否相同? sonotedog linux 创建子目录 Znnsodog什么意思 Linux在子目录下创建子目录的方法 An angel is a dog so…Ibeat the dog when I home at night什么意思_百度问一问 如何在主帐户下创建子帐户 linux Linux用shell创建子接口 中国古代的时候我们古人为什么就没有想起来修建木轨道来用马拉火车运输东西这样到外地不就更方便运输了? 姜文导演的《让子弹飞》,其中有一场惊天动地的的火车劫案,这段儿经典的“马拉火车”的拍摄所在地就是现在 马能追上火车吗 《让子弹飞》中葛优扮演的县长走马上任时拉火车的一共有几匹马_百度知... linux父进程创建两个子进程 怎么存手机号 中国第一列火车的简介 《让子弹飞》里有马有列车,寓指马列主义? 慈禧曾经有一专列火车,最后下落究竟如何? 火车的中国首辆 请问这种中药材的学名,(客家人称为:棕管子或丝线根),非常非常感谢! 寄生在植物上的黄色丝线是什么植物 金银丝线快速打结方法?