您的位置:首页 > 运维架构 > Linux

Linux进程控制编程(五)

2016-12-09 21:24 246 查看
一、进程创建

在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: