进程控制

进程控制

进程图解

  • 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谁执行。
    • 如何区分父子进程
      • 看返回值
  • getpid - 得到当前进程的PID
    getppid - p是parent的意思,得到当前进程的父进程PID
posted @ 2020-11-12 21:15  Kεvin  阅读(132)  评论(0编辑  收藏  举报