当前位置:   article > 正文

进程控制函数(fork、getpid、execl)

进程控制函数

1. 什么是进程

进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

2. 进程控制函数

<1> fork

创建一个子进程

#include <unistd.h>
pid_t	fork(void);
  • 1
  • 2

失败返回-1,成功两次返回:
(1)父进程返回子进程的ID(非负)
(2)子进程返回0

<2> getpid、getppid

getpid:获得当前进程ID(pid)
getppid:获得当前进程父进程的ID

#include <sys/types.h>
#include <unistd.h>
pid_t	getpid(void);
pid_t	getppid(void);
  • 1
  • 2
  • 3
  • 4

程序实例1:fork、getpid、getppid的使用

  1 #include <stdio.h>                                                          
  2 #include <unistd.h>
  3 #include <sys/types.h>
  4 #include <stdlib.h>
  5 
  6 int main(int argc, char *argv[])
  7 {
   
  8     printf("Begining...\n");
  9     pid_t pid = fork();
 10     if(pid < 0){
   
 11         perror("fork err");
 12         exit(1);
 13     }
 14     if(pid == 0){
   
 15         //child
 16         printf("I am a child, self pid = %d, ppid = %d\n", getpid(), getppid
 17     }
 18     else if(pid > 0){
   
 19         //parent
 20         printf("child pid = %d, self pid = %d, ppid = %d\n", pid, getpid(), 
 21         sleep(1); //父进程休眠一秒,防止父进程比子进程先结束,导致子进程成为孤儿进程
 22     }
 23     printf("Ending...\n");
 24 
 25     return 0;
 26 }                                                                       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

执行结果如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/210194
推荐阅读
相关标签
  

闽ICP备14008679号