linux 的C语言 fork()函数

来源:互联网 发布:数据库中自然连接 编辑:程序博客网 时间:2024/04/30 00:47
                  进程,包括,代码,数据,分配的资源。fork()函数,的调用,可以函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。至于,进程的例子,有很多,比如:迅雷下载,Window中的任务管理器中的进程.......

             也就是说,在C语言中调用fork()函数,会有一个“父进程”,和“子进程”,这就是它的特点。

下面我们来看一下代码:

        

#include <stdio.h>#include <unistd.h>#include <sys/types.h>int main(int argc , char **argv){ int id; id=fork(); if(id<0) {  printf("fork error\n"); } else if(id==0)  {   printf("I'm in child process\n");  } else  {   printf("I'm in parent process\n");  } return 0;}

这段代码的执行结果是:
I'm in parent process
I'm in child process
从这断代码中,我们只能判断,子进程是否在父进程中,还是父进程和子进程是独立的
那么在看下面一段代码:
   
#include <stdio.h>#include <unistd.h>#include <sys/types.h>static int count = 0;int main(int argc , char **argv){ int id; id=fork(); if(id<0) {  printf("fork error\n"); } else if(id==0)  {   count++;   printf("I'm in child process\n");   printf("child count=%d\n",count);  } else  {   count++;   printf("I'm in parent process\n");   printf("parent count=%d\n",count);  } return 0;}
结果是:
I'm in child process
child count=1
I'm in parent process
parent count=1
从结果我们就能看到了  它们都是独立的
   



0 0
原创粉丝点击