1个回答
展开全部
子进程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;
}
子进程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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询