进程控制函数
1. 什么是进程
进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
2. 进程控制函数
<1> fork
创建一个子进程
#include <unistd.h>
pid_t fork(void);
失败返回-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: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 }
执行结果如下:
程序实例2:循环创建n个子进程
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 #include <sys/types.h