exec 函数族

#include  <unistd.h>   //调用exec函数族需要包含unistd.h

extern char **environ;

int execl(const char* fullpath , const char* arg , ...);
int execlp(const char* file , const char* arg , ...);
int execle(const char* fullpath , const char* arg , ..., char* const envp []);
int execv(const char* fullpath , char* const argv []);
int execvp(const char* file , char* const argv []);  
int execve(const char* fullpath , const char* arg[] , char* const envp []);


int execl(const char* fullpath, const char* arg, ....)
使用范例:execl(“/bin/ls”, ”ls”, ”-al”, NULL)

int execlp(const char* file, const char* arg, ....)
使用范例:execlp(“ls”, ”ls”, ”-al”, NULL)

int execle(const char* fullpath, const char* arg, ...., char* const envp[])
使用范例:execle(“/bin/ls”, ”ls”, ”-al”, NULL, environ)

int execv(const char * fullpath, char* const argv[])
使用范例:execle(“/bin/mkdir”, argv)  // int main(int argc, char* argv[])
或    char* const p[] = {"a.out" , "testDir", NULL};
      execv("/bin/mkdir", p);

int execvp(const char* file, const char* arg, ....)
使用范例:execlp(“ls”, argv)  // int main(int argc, char* argv[])
或    char* const p[] = {"a.out" , "testDir", NULL};
      execvp("mkdir", p);

int execve(const char* fullpath, const char* arg, ...., char* const envp[])
使用范例:execve(“/bin/ls”, argv, environ)
或    char* const p[] = {"a.out" , "testDir", NULL};
      execve("/bin/mkdir", p);

     函数名中带有字母“l”的函数,其参数个数不定。其参数由所调用程序的命令行参数列表组成,最后一个NULL表示结束。函数名中带有字母“v”的函数,使用一个字符串数组指针argv指向参数列表,这一字符串数组和带有“l”的函数中的参数列表完全相同,同样以NULL结束。
     函数名中带有“p”的函数可以自动在环境变量PATH指定的路径中搜索要执行的程序,因此它的第一个参数为filename表示可执行函数的文件名。而其它函数则需要用户在参数列表中指定该程序路径,其第一个函数pathname为路径名。
     函数名中带有“e”的函数,比其它函数多了一个参数envp,该参数是字符串数组指针,用于制定环境变量。这个数组也必须是以NULL结束。其它函数则是直接使用当前环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值