一、exec函数簇
int execl(const char *path, const char *arg, ...);
2 int execlp(const char *file, const char *arg, ...);
3 int execle(const char *path, const char *arg, ..., char * const envp[]);
4 int execv(const char *path, char *const argv[]);
5 int execvp(const char *file, char *const argv[]);
6 int execve(const char *path, char *const argv[], char *const envp[]);
二、waitpid函数
作用同于wait,但可指定pid进程清理,可以不阻塞。
pid_t waitpid(pid_t pid,int *status,int options);成功:返回清理掉的子进程ID;失败:-1(无子进程)
特殊参数和返回情况:
参数pid:
>0 回收指定ID的子进程
-1 回收任意子进程(相当于wait)
0 回收和当前调用waitpid一个组的所有子进程
< -1 回收指定进程组内的任意子进程
返回0:参数3为WNOHANG,且子进程正在运行。
注意:一次wait或waitpid调用只能清理一个子进程,清理多个子进程需要用到循环