Maison  >  Article  >  Opération et maintenance  >  Linux utilise la fonction exec pour implémenter le partage de code pour le remplacement des processus

Linux utilise la fonction exec pour implémenter le partage de code pour le remplacement des processus

黄舟
黄舟original
2017-05-28 11:31:221995parcourir

Cet article présente principalement les informations pertinentes sur le code d'implémentation du remplacement du processus Linux (execfonction ) Les amis dans le besoin peuvent se référer au

Processus Linux. Code d'implémentation de remplacement (fonction exécutable)

  # 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;                                              }

L'image ci-dessous est l'image du résultat de execl execlp execv execvp


Le image ci-dessous C'est le graphique de résultat de execle execve

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn