看代码:
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
int main(void)
{
pid_t pid;
// printf("1\n");
// fflush(stdout);
pid=fork();
switch (pid) {
case 0:
while (1) {
printf("A Ba,Pid:%d,Parent Pid:%d\n",getpid(),getppid());
}
break;
case -1:
perror("Process creation fail\n");
break;
default:
printf("i am Parent Pid:%d\n",getpid());
exit(0);
}
return 0;
}
pid不是1的原因:
平时在图形界面打开的terminal是伪终端,需要切换界面,命令如下:
图形界面切换到字符型界面:
Crtl+Alt+F3/Ctrl+Fn+Alt+F3
字符型界面切换到图形界面:
Ctrl+Alt+F2/Ctrl+Fn+Alt+F2
再运行程序,父进程pid变为1.成功。