进程创建
从已存在的进程中,创建一个具有独立地址空间的新的进程,且新创建的进程为子进程。
函数:pid_t fork(void);
1. 子进程中返回0
2. 父进程返回子进程id
3. 出错返回-1
fork之前,父进程独立执行,fork之后,父子两执行流分别执行。
fork之后,谁先执行完全由调度器决定。
vfork:
1. 创建子进程,而子进程与父进程共享地址空间。
2. 保证子进程先运行,在调用exec或exit之后父进程才可能被调度运行。
代码实现
1 #include<stdio.h>
2 #include<unistd.h>
3 #include<stdlib.h>
7 int main()
8 {
9 int g_val=0;
10 pid_t id=fork(); //创建进程
11 if(fork<0) //创建 失败
12 {
13 perror("fork");
14 return 0;
15 }
16 else if(fork==0) //子进程
17 {
18 //child
19 g_val=100;
20 printf(&#