exec函数族的作用是让fork出的子进程能够执行与父进程不同的代码段,实现不同的功能。

exec由6个函数组成

  1. 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 encp[]);
  4. int execv(const char *path,const char *argv[]);
  5. int execvp(const char *file,const char *argv[]);
  6. int execve(const char *path,const char *argv[],char *const envp[]);

如何记忆

字符 原型 描述
l list 选项列表,对应函数的省略号,可以写多个参数,以NULL结尾
v vector 将命令的多个选项放到一个数组里,作为第二个参数
p path 在系统PATH变量的路径里搜索,无p字符的函数则需要给出可执行文件的全路径名
e enviroment 表示将一份新的环境变量传给他?

样例

  1. execlp("ls", "ls", "-a", (char *)NULL);
  2. char *v[] = {"ls", "-a", NULL};
  3. execvp("ls", v);