linux下c语言编程exec函数使用

您所在的位置:网站首页 C语言exe linux下c语言编程exec函数使用

linux下c语言编程exec函数使用

2024-07-17 08:27| 来源: 网络整理| 查看: 265

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