title: exec函数
date: 2019/12/5 19:40:51
toc: true
---

exec函数

原型

int execl(const char *pathname, const char *arg0, ... /* (char *)0 */ );
int execv(const char *pathname, char *const argv[]);
int execle(const char *pathname, const char *arg0, ...
                                    /* (char *)0, char *const envp[] */ );
int execve(const char *pathname, char *const argv[], char *const envp[]);
int execlp(const char *filename, const char *arg0, ... /* (char *)0 */ );
int execvp(const char *filename, char *const argv[]);
int fexecve(int fd, char *const argv[], char *const envp[]);

解释

  1. pathname是路径,filename是文件名,如果filename含有/也是路径名,fd是描述符
  2. l参数可以使用指针数组,也就是char *const argv[]形式,第一个元素是exe的名字
  3. v参数也可以使用不定参数的形式,以(char*)0判定
  4. e环境变量也可以使用指针数组char *const envp[]
  5. 环境变量使用不定参数也是按照null判定

继承的属性

权限位的设置

这里的设置用户id位和设置组id位实际就是文件权限位的[xxxx]四个8进制的最高的8进制,

12-21 14:30