加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 05:14:49 所属栏目:安全 来源:网络整理
导读:Linux 进程替换(exec函数)实现代码 # includestdio.h #includestdlib.h #includeunistd.h #includefcntl.h #includesys/types.h #includesys/stat.h #includestring.h int main() { pid_t id=fork(); if(id==0) { printf("child is runningn"); sleep(1);

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

  # 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 runningn");
   sleep(1);    
  char* env[]={"MYENV=/A/B/C/D/AAAA",NULL};
  char* argv[]={"ls","-l","-n","-i",NULL};
 // execl("/bin/ls","ls",NULL);
  // execlp("ls",NULL);
 //  execv("/bin/ls",argv); 
  // execvp("ls",argv);
            
             
   // execle("./myenv","myenv",NULL,env);
      execve("./myenv",argv,env);    
      printf("child id donen");  //exec成功的话不执行此语句
      exit(1);   
    }               
    else                                                        
    {         
       pid_t ret=waitpid(id,0);
      if(ret>0)  
       {      
        printf("father wait successn"); }
         else{  
          printf("child quit not normaln");
            
       }   }   return 0;                                              }
 

                  

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


下图是execle execve的结果图

感谢阅读,希望能帮助到大家,谢谢大家对对本知道支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读