进程 - exec函数族 进程调用exec函数族执行某个程序 进程当前内容被指定的程序替换 实现让父子进程执行不同的程序 父进程创建子进程 子程序调用exec函数族 父进程不受影响 进程 - execl/execlp #include<unistd.h> int execl(const char *path,const char *arg,...); 要执行程序的路径 int execlp(const char *file,const char *arg,...); 成功时执行指定的程序,失败时返回EOF path 执行的程序名称,包含路径 arg...传递给执行的程序的参数列表 file 执行的程序的名称,在PATH中查找 进程创建 - execl(p) - 示例 执行ls命令,显示/etc目录下所有文件的详细信息 if(execl("/bin/ls","ls","-a","-l","/etc",NULL)<0){ perror("execl"); } if(execlp("ls","ls","-a","-l","/etc",NULL)<0){ perror("execlp"); } 进程 - execv/execvp #include<unistd.h> int execv(const char *path,char *const argv[]); int execvp(const char *file,char *const argv[]); 成功时执行肯定的程序,失败时返回EOF arg...封装成指针数组的形式 进程创建 - execv(p) - 示例 执行ls命令,显示/etc目录下所有文件的详细信息 char *arg[]={"ls","-a","-l","/etc",NULL}; if(execv("/bin/ls",arg)<0){ perror("execv"); } char *arg[]={"ls","-a","-l","/etc",NULL}; if(execvp("ls",arg)<0){ perror("execvp"); } 进程 - system #include<stdlib.h> int system(const char *command); 成功时返回命令command的返回值,失败时返回EOF 当前进程等待command执行结束后才继续执行