程序和进程
程序是保留在硬盘上的可执行代码。进程是操作系统资源管理的最小单位,简单来说,进程就是运行中的程序。进程是动态的,程序是静态的。
在Linux下,进程可以通过ps指令来查询, 通过ps aux|grep XXX 来查询指定的进程。
进程标识符(pid)
进程标识符相当于进程的身份证,一个进程标识符对应一个进程,而多个进程标识符可以对应一个程序。
进程标识符的类型是pid_t, 在程序中可通过 getpid()来获得。
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
父进程和子进程
进程A创建了进程B,则A是B的父进程,B是A的子进程。
在Liunx系统中,通常使用fork()函数来创建子进程,子进程的代码和父进程的代码完全一样,相当于是父进程的拷贝。
#include <unistd.h>
pid_t fork(void);
fork函数的返回值
返回值为-1时,表示子进程创建失败。
返回值为0时, 表示子进程。
返回值 >0 时,表示父进程。