Linux进程基础——创建子进程
主要概念:
父进程与子进程
创建新进程的那个进程称为父进程
,新进程称为子进程
。使用 fork()
函数创建子进程。
实验目的:
创建子进程,分别在父进程和子进程中打印各自的 PID。
相关函数:
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void) //创建进程
pid_t getpid(void) //获取进程ID
pid_t getppid(void) //获取父进程ID
代码:
//fork.c
#include <stdio.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
pid = fork();
if(pid < 0)
{
printf("fork is error \n");
return -1;
}
if(pid > 0)
{
printf("This is parent, parent pid is %d\n", getpid());
}
if(pid == 0)
{
printf("This is child, child pid is %d, parent pid is %d\n", getpid(), getppid());
}
return 0;
}
编译运行:
sixer@ubuntu:~/imx_usr/sys_app/01_process$ gcc -o fork fork.c
sixer@ubuntu:~/imx_usr/sys_app/01_process$ ./fork
实验现象:
sixer@ubuntu:~/imx_usr/sys_app/01_process$ ./fork
This is parent, parent pid is 2039 This is child, child pid is 2040, parent pid is 2039
总结:
可见父进程PID为2039,父进程创建了PID为2040的子进程。