今天记录一下最近在学习进程和线程方面的只是中,所遇到的一些问题。
父进程先于子进程结束,子进程就变成了孤儿进程,它会由init进程收养,成为init进程的子进程,本来它父进程的ID应该为init的ID也就是1.但如果你在Ubuntu的图形界面的终端下执行下面的程序,你会发现孤儿进程的ID并不是1.
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
pid_t pid;
pid = fork();
switch(pid)
{
case 0:
while(1)
{
printf("A background process, PID: %d, ParentID: %d\n",getpid(),getppid()); //输出子进程以及它父进程的ID
sleep(3);
}
case -1:
perror("Process creation failed\n");
exit(-1