Linux-fork命令创建进程
子进程是从调用fork以后的代码开始执行的,fork调用一次会返回两个值,其中在子进程中返回0,在父进程中返回子进程的pid号
Ax 调用Fork()
我们写一个C语言程序来使用fock函数。
# include<stdio.h>
# include<unistd.h>
int main(void)
{
fork(); // 调用fork函数;
printf("fork testing!");
return 0;
}
输出结果
fork testing!fork testing!
可以发现,输出了两次printf函数。
Bx 定义
在Linux中,父进程以分裂的方式来创建子进程,创建一个子进程的系统调用叫做fork()。
那么如何让fork输出不同的结果呢。
Cx 再次调用Fork()
编写程序。
# include<stdio.h>
# include<unistd.h>
# include<sys/types.h>
# include<stdlib.h>
int main(void)
{
pid_t pid;
char *message;
int n;
pid = fork();
if(pid < 0)
{
perror("fork failed");
exit(1);
}
if(pid == 0)
{
printf("This is the cihild process.My PID is:%d.My PPID is: %d.\n", getpid(), getppid());
}
else
{
printf("This is the parent process.My PID is %d. \n", getpid());
}
return 0;
}
输出结果
This is the parent process.My PID is 68333.
This is the cihild process.My PID is:68334.My PPID is: 68333.
通过fork的返回值来返回不同的值,这里父进程是68333,子进程是68334