Linux进程编程问题

根据下图利用fork、exec、wait、waitpid等函数编程... 根据下图利用fork、exec、wait、waitpid 等函数编程 展开
 我来答
kwydwuf
2010-05-18 · TA获得超过7409个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:1989万
展开全部
子进程1 执行 ls -l .
子进程2 sleep 5 秒

你的分少了点,不过题目简单,还是帮你一把吧。

#include <stdio.h>
#include <unistd.h>

int main()
{
int pid1, pid2;

pid1 = fork();

if (pid1 == 0)
{
/* child 1 */
printf("child 1, pid %d exec ls\n", getpid());
execlp("/bin/ls", "/bin/ls", "-l", ".", NULL);
}
else if (pid1 > 0)
{
pid2 = fork();
if (pid2 == 0)
{
/* child 2 */
printf("child 2, pid %d start sleep\n", getpid());
sleep(5);
printf("child 2, pid %d finish sleep\n", getpid());
}
else if (pid2 > 0)
{
printf("Parent waiting for child pid %d\n", pid2);
waitpid(pid2, NULL, 0);
printf("child pid %d already exit\n", pid2);
}
}

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式