Linux进程控制编程(五)

来源:互联网 发布:数据管理软件开发 编辑:程序博客网 时间:2024/06/05 03:50

一、进程创建


在pid=fork()之前,只有一个进程在执行,但在这条语句执行之后,就变成两个进程在执行了,这两个进程的共享代码段,将要执行的下一条语句都是if(pid==0). 两个进程中,原来就存在的那个进程被称作“父进程”,新出现的那个进程被称作“子进程”,父子进程的区别在于进程标识符(PID)不同.


例:

#include <unistd.h>
#include <stdio.h>
int main(void)
{
      pid_t pid;
 int count=0;
      pid = fork();
 count++;
 printf( “count = %d\n", count );
 return 0;
}

输出:
   count = 1
   count = 1
   
 思考:

  count++被父进程、子进程一共执行了两次,为什么count的第二次输出为什么不为2?


结果:

子进程的数据空间、堆栈空间都会从父进程得到一个拷贝,而不是共享。在子进程中对count进行加1的操作,并没有影响到父进程中的count值,父进程中的count值仍然为0


0 0
原创粉丝点击