
ubuntu下编译c文件的时候 出现如下问题
C代码如下#include"stdio.h"#include"sys/types.h"#include"unistd.h"intmain(){pid_tpid1;pid_...
C代码如下
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
pid_t pid1;
pid_t pid2;
pid1 = fork();
pid2 = fork();
printf("pid1:%d, pid2:%d\n", pid1, pid2);
}
红线中输出结果为什么会出现root@....信息 展开
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
int main()
{
pid_t pid1;
pid_t pid2;
pid1 = fork();
pid2 = fork();
printf("pid1:%d, pid2:%d\n", pid1, pid2);
}
红线中输出结果为什么会出现root@....信息 展开
2个回答
展开全部
父进程终止了,子进程仍在运行,子进程被init领养了。shell 受到了结束的信号,然后就输出了……。然后子进程再输出了。
看看AUPE 吧。本人最近在看。经典。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int pid1;
if((pid1 = fork()) < 0){
fprintf(stderr, "fork error\n");
}else if(pid1 == 0){ // child
sleep(1); // 让父进程先走,不能保证……
printf("pid = %d, ppid = %d\n", getpid(), getppid());
exit(0);
}else{ // parent
printf("parent finished\n");
exit(0);
}
exit(0);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询