进程和人类一样,都有产生、生长、睡眠和死亡等各种生命形态。其中,函数fork创建新的进程,函数exec执行新的程序,函数sleep休眠正在执行的进程,函数wait同步进程, exit结束进程,进程就死亡了。
(1) fork - exec
调用fork创建的子进程,将共享父进程的代码空间,复制父进程的进程数据空间, 如堆栈等。调用exec函数后,将会使用新程序的代码覆盖进程中原来的程序代码,并使进程使用函数提供的命令行参数和环境变量去执行新的程序。
exec函数族有六个函数如下:
#include <unistd.h>
int execl(const char *path, const char *arg0, ..., (char *)0);
int execle(const char *path, const char *arg0, ..., (char *)0, char *const envp[]);
int execlp(const char *file, const char *arg0, ..., (char *)0);
int execv(const char *pat