fork函数功能
怎样声明fork函数?
怎样声明fork函数?
一、fork介绍知识:一个过程,包括代码、数据和分配给过程的资源。fork()函数通过系统调用创建一个几乎与原始过程完全相同的过程,即两个过程可以完全相同,但如果初始参数或传入的变量不同,这两个过程也可以做不同的事情。
一个过程调用fork()函数后,系统首先为新进程分配资源,例如存储数据和代码的空间。然后将原始进程的所有值复制到新进程中,只有少数值不同于原始进程的值。这相当于克隆你自己。
让我们看一个例子:
[cpp] view plain copy
/*
* fork_test.c
* version 1
* Created on: 2010-5-29
* Author: wangth
*/
#include ltunistd.hgt
#include ltstdio.hgt
int main ()
{
pid_t fpid //fpid表示fork函数返回的值
int count=0
fpid=fork()
if (fpid lt 0)
printf(\\
fork函数原理?
fork,翻译过来就是餐叉
打印x,会有两个整数,但不能说fork()函数函数同时反悔两个值,fork()创建两个子过程x属于不同的进程,不同的代码块,如果x同时有两个值,所以不可能x作if判断。
1 fork()函数通过系统调用创建一个几乎与原始过程完全相同的过程,即两个过程可以完全相同
2.fork调用的一个奇妙之处是,它只能调用一次,但可以返回两次。它可能有三个不同的返回值
1)在父的过程中,fork回到新创建子过程的过程ID;
2)在子进程中,fork返回0;
3)如果有错误,fork回到负值;
3.这两个进程执行没有固定的顺序,哪个进程先执行取决于系统的进程调度策略。
4.fork完成后,出现了两个内容完全相同的过程,fork将过程的当前情况复制一份,赋值给子过程。
5 多个过程之间的变量是相互独立的,互不影响,因为父过程会将代码复制到子过程中,子父过程的代码段是相同的。
6理论上,子进程的结束不影响父进程。