execl家族函数总结

来源:互联网 发布:vr视频软件 编辑:程序博客网 时间:2024/04/30 10:31
int execl(const char *path, const char *arg, ...);
 
int execlp(const char *file, const char *arg, ...);

int execle(const char *path, const char *arg,..., char * const envp[]);
      
int execv(const char *path, char *const argv[]);

int execvp(const char *file, char *const argv[]);

int execvpe(const char *file, char *const argv[],char *const envp[]);



1. execl("/bin/ls", "ls", "-al", NULL);
   第一个参数指明指令ls 的位置是/bin/ls
   之后的指令就是想写的指令,以列表形式写出,再加NULL结束。
2.execlp("ls", "ls", "-al", NULL);
  第一个参数ls是从环境变量$PATH中找出。之后是以列表形式加NULL结束。
3.

4.char *argv[] = {"ls", "-al", NULL} ;
  execv("/bin/ls", argv);

第一个参数是找出ls可执行文件的位置,第二个是想执行指令集合的数组。
5.

 char *argv[] = {"ls", "-al", NULL} ;
 execvp("ls", argv);
execvp的第一个参数从环境变量$PATH中找出,之后是执行指令集合的数组。
6.
int execvpe(const char *file, char *const argv[],char *const envp[]);
int execle(const char *path, const char *arg,..., char * const envp[]);
这两个与上面一些的区别主要就是最后一个参数envp[];我看了些资料,
说的是:
函数传递指定参数envp,允许改变子进程的环境,无后缀e时,子进程使用当前程序的环境。
但是具体要怎么去改变环境变量,我还是不是很清楚.

 
0 0