linux下c语言编程exec函数使用 |
您所在的位置:网站首页 › C语言exe › linux下c语言编程exec函数使用 |
exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,和调用exec函数的进程一样。
下面来看下exec函数族: #include 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 execve(const char *path, char *const argv[], char *const envp[]); exec函数族装入并运行程序pathname,并将参数arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1。在exec函数族中,后缀l、v、p、e添加到exec后,所指定的函数将具有某种操作能力有后缀:
其中只有execve是真正意义上的系统调用,其它都是在此基础上经过包装的库函数。 我们来看下面的一个实例: #include #include #include #include int main(int argc,char *argv[],char *envp[]) { char *arg[]={"ls","-a",NULL}; if(fork()==0) { printf("execl...........\n"); if(execl("/bin/ls","ls","-a",NULL) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |