Connaissances Informatiques >> systèmes >> Unix >> Content
  Derniers articles
  • Qu’est-ce que la commande tar sous L…
  • Comment décompresser un fichier tar…
  • Que signifie la ligne 1 dans le coda…
  • Le Commandement de décompresser les…
  • Comment changer le nom du propriéta…
  • Unix prend en charge les commandes D…
  • Comment utiliser Grep récursive dan…
  • Unix Kernel Tutorial 
  • Unix est moins stable que MS Windows…
  • Un vrai système d’exploitation Unix…
  •   Unix
  • Compétences informatiques de base

  • Linux

  • Mac OS

  • Ubuntu

  • Unix

  • fenêtres

  • windows Vista

  • windows XP

  • Windows 7

  • Windows 10

  • Windows 11

  • Windows 2012

  • Windows 2016

  • Windows 2019

  • Windows 2022

  • Apple

  • Android

  • iOS

  • CentOS
  •  
    Unix

    Quand un appel à EXEC revient-il dans Unix?

    Dans Unix, un appel à `EXEC` ne revient jamais S'il réussit. Voici pourquoi:

    * Remplacement, pas d'exécution: `EXEC` n'exécute pas * un nouveau programme au sens traditionnel. Il * remplace * l'image du processus actuel par l'image du nouveau programme. Cela signifie que le processus d'origine disparaît essentiellement et que le nouveau programme prend sa place.

    * Transfert de contrôle direct: L'appel système `EXEC` transfère directement le contrôle au nouveau programme sans retourner à l'appelant. C'est comme si le processus d'origine était "échangé" pour le nouveau.

    Exemple:

    `` C

    #include

    int main () {

    // tenter de remplacer le processus actuel par "ls -l"

    if (eeclp ("ls", "ls", "-l", null) ==-1) {

    // n'atteignez ceci que si execlp échoue

    perror ("execlp a échoué");

    retour 1;

    }

    // Cette ligne ne sera jamais atteinte

    printf ("Ceci ne sera jamais imprimé. \ n");

    retour 0;

    }

    `` '

    Pourquoi `EXEC` est utile

    * Efficacité: Il évite les frais généraux de la création d'un nouveau processus et de la gestion de son espace mémoire.

    * Contrôle direct: Fournit un mécanisme pour un processus pour passer de manière transparente à un autre programme.

    points clés

    * `EXEC` Variants (` EXECL`, `EXECV`,` EXECLP`, `EXECVP`) ont tous le même comportement en termes de valeurs de retour.

    * Si `EXEC` échoue (par exemple, le fichier n'est pas trouvé, problèmes d'autorisation), il renvoie` -1` et définit `errno` pour indiquer l'erreur.

    * Pour que un programme en exécute un autre, puis continuez, vous devez utiliser «Fork» pour créer un processus d'enfant avant d'appeler «Exec» chez l'enfant.

    Faites-moi savoir si vous avez d'autres questions sur «Exec» ou les processus dans UNIX!

     
    Article précédent:
    Article suivant: No
    Articles recommandés
  • Comment imprimer le répertoire actuel dans le programme shell ? 
  • Quelle est la commande utilisée pour compresser un fichier sous Unix ? 
  • Qu’est-ce qu’un filtre sous Unix ? 
  • Quel est cet équivalent de NH ? 
  • Comment faire pour arrêter ou redémarrer une machine UNIX 
  • Pourquoi la commande awk -f est-elle utilisée ? 
  • Sur quel type de matériel Unix fonctionne-t-il ? 
  • Comment utiliser Grep récursive dans un chemin Unix 
  • Comment utiliser la commande less sous Linux ? 
  • Quand un appel à EXEC revient-il dans Unix? 
  • Connaissances Informatiques © http://www.ordinateur.cc