进程调用exec函数族执行某个程序
进程当前程序被执行程序替换
让父子进程执行不同的程序
父进程创建子进程
子进程调用exec函数族·
父进程不受影响
#include<unistd.h>
int execl(const char *path, const char *arg, ...)
int execlp(const char *file, const char *arg,...)
成功则执行指定程序 失败则返回EOF
path 执行的程序的名称 包含路径
arg.... 传递给程序的参数
file 执行的程序的名称 不含路径 需要在PATH环境变量中查找
#include<unistd.h>
int execv(const char *path, char *const argv[],...)
int execvp(const char *file, char *const srgv[],....)
成功执行指定程序 失败返回EOF
arg....封装成指针数组的形式
Ps:char *arg[]= {"ls","-a", "-l", "/etc", NULL};
if(execv("/bin/ls", arg) < 0)
{
perror("execv");
}
#include <stdlib.h>
int system(const char *command)
成功返回command命令的返回值 失败返回EOF
函数的实现过程 是 先创建一个子进程 然后system()在子进程中执行命令 父进程需要等待子进程执行完之后才能继续执行