Linux使用exec函数实现进程替换的代码分享


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要介绍了Linux 进程替换(exec函数)实现代码的相关资料,需要的朋友可以参考下

Linux 进程替换(exec函数)实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

# include<stdio.h>  

 #include<stdlib.h>

 #include<unistd.h> 

 #include<fcntl.h> 

 #include<sys/types.h>

 #include<sys/stat.h>                                                 

 #include<string.h> 

 int main()    

  {        

   pid_t id=fork();

 if(id==0)     

  {       

  printf("child is running\n");

  sleep(1);   

 char* env[]={"MYENV=/A/B/C/D/AAAA",NULL};

 char* argv[]={"ls","-l","-n","-i",NULL};

// execl("/bin/ls","ls","-l","-n","-i",NULL);

 // execlp("ls","ls","-l","-n","-i",NULL);

//  execv("/bin/ls",argv);

 // execvp("ls",argv);

            

             

  // execle("./myenv","myenv",NULL,env);

     execve("./myenv",argv,env);   

     printf("child id done\n");  //exec成功的话不执行此语句

     exit(1);  

   }              

   else                                                       

   {        

      pid_t ret=waitpid(id, NULL,0);

     if(ret>0) 

      {     

       printf("father wait success\n"); }

        else

         printf("child quit not normal\n");

            

      }   }   return 0;                                              }

下图就是execl execlp execv execvp的结果图


下图是execle execve的结果图

以上就是Linux使用exec函数实现进程替换的代码分享的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux重启网络命令是什么

Linux如何返回上一级目录

关于api 返回内容只有 10 条信息的原因

Linux中命令无法使用

Linux怎么安装系统

Linux如何查看端口是否开放

Linux怎么挂载

Linux如何安装qq

如何使用创建的自定义镜像创建ecs实例或者更换实例的系统盘

大白菜安装Linux教程图解

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...