怎么使用fork函数创建子进程的子进程

 我来答
草原上之狼
高粉答主

2017-11-03 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:3853万
展开全部
//main1.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
printf("program 1 started\n");
char *newargv[] = { "hello", "world" };
char *newenviron[] = { NULL };
int pid=fork();
if(pid < 0)
exit(EXIT_FAILURE);
if(pid == 0)
{
execve("./main2", newargv, newenviron); //打开同级目录下的main2程序
perror("execve"); /* execve() only returns on error */
exit(EXIT_FAILURE);
}

//父进程继续
sleep(5); //do something
printf("Promgram 1 finished!\n");
return 0;
}
//main2.c
#include <stdio.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
printf("program 2 started\n");
int i;
for(i = 0; i<argc;i++)
printf("%s\n",argv[i]);
sleep(5); //do something
printf("Promgram 2 finished!\n");
return 0;
}

然后编译
gcc -o main1 main1.c
gcc -o main2 main2.c

运行
./main1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式