进程控制
进程控制
进程图解
-
fork函数介绍
代码实现
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 #include <sys/types.h>
5 #include <sys/stat.h>
6 #include <string.h>
7
8 int main(int argc, const char* argv[])
9 {
10 pid_t pid;
11 for(int i = 0; i < 4; ++i)
12 {
13 printf("---------i = %d\n",i);
14 }
15
16 pid = fork();
17 //父进程
18 if(pid > 0)
19 {
20 printf("parent process, pid = %d", getpid());
21 }
22 else if(pid == 0)//子进程
23 {
24 printf("child process, pid = %d, ppid = %d\n", getpid(), getppid());
25 }
26
27 for(int i = 0; i < 4; ++i)
28 {
29 printf("i = %d\n", i);
30 }
31 return 0;
32 }
总结
- 基本特征
- fork函数的返回值
- 父进程的返回值>0
- 子进程的返回值=0
- 子进程创建成功之后,代码运行的位置
- 父进程执行到了哪里,子进程就从哪里开始执行
- 父子进程的执行顺序
- 不一定,谁抢到cpu谁执行。
- 如何区分父子进程
- 看返回值
- fork函数的返回值
- getpid - 得到当前进程的PID
getppid - p是parent的意思,得到当前进程的父进程PID
每一天的分享时刻