intexec…装入和运行其它程序:intexecl( char *pathname,char *arg0,char*arg1,...,char *argn,NULL)int execle( char*pathname,char *arg0,char *arg1,...,char *argn,NULL,char*envp[])int execlp( char*pathname,char *arg0,char *arg1,...,NULL)int execlpe(char*pathname,char *arg0,char *arg1,...,NULL,char *envp[])intexecv( char *pathname,char *argv[])int execve( char*pathname,char *argv[],char *envp[])int execvp( char*pathname,char *argv[])int execvpe(char*pathname,char *argv[],char *envp[])
execl(执行文件)表头文件#include<unistd.h>定义函数int execl(const char * path,const char *arg,....);函数说明execl()用来执行参数path字符串所代表的文件路径,接下来的参数 代表执行该文件时传递过去的argv[0]、argv[1]……,最后一个参数必须用空指针(NULL)作结束。返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。范例#include<unistd.h>main(){execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,(char * )0);}执行-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
execlp(从PATH 环境变量中查找文件并执行)表头文件#include<unistd.h>定义函数int execlp(const char *file,const char * arg,……);函数说明execlp()会从PATH 环境变量所指的目录中查找符合参数file的文件名,找到后执行该文件,然后将 第二个以后的参数当做该文件的argv[0]、argv[1]……,最后一个参数必须用空指针(NULL)作结束。返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。范例#include<unistd.h>main(){execlp(“ls”,”ls”,”-al”,”/etc/passwd”,(char *)0);}执行-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
execv(执行文件)表头文件#include<unistd.h>定义函数 int execv (constchar * path, char * const argv[ ]);函数说明 execv()用来执行参数path字符串所代表的文件路径,与execl()不同的地方在于 execv()只需两个参数,第二个参数利用数组指针来传递给执行文件。返回值如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。范例#include<unistd.h>main(){char * argv[ ]={“ls”,”-al”,”/etc/passwd”,(char*) };execv(“/bin/ls”,argv);}执行-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd

execve(执行文件)表头文件#include<unistd.h>定义函数intexecve(const char * filename,char * const argv[ ],char * constenvp[ ]);函数说明 execve()用来执行参数filename字符串所代表的文件路径, 第二个参数系利用数组指针来传递给执行文件,argv要传递给程序的完整参数列表, 包括argv[0],它一般是执行程序的名字;最后一个参数则为传递给执行文件的新环境变量数组。返回值如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。