Connaissances Informatiques >> systèmes >> Unix >> Content
  Derniers articles
  • Écrire un script shell pour accepte…
  • Comment Rechercher et remplacer dans…
  • Qu'est-ce que Diffrance entre Linux …
  • Quelle est la commande utilisée pou…
  • Qu’est-ce qu’UNIX SEQ ? 
  • Unix Shell Scripting Tutorial 
  • Comment décompresser des fichiers m…
  • Structure de fichiers d'un système …
  • Avantages et inconvénients de Unix 
  • Comment écrire un script shell sous…
  •   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

    Quelle est la différence entre EXECL et Système dans UNIX?

    Décomposons les différences entre `EXECL` et« Système »dans UNIX:

    `execl` (et ses variantes)

    * Objectif: `EXECL` remplace le processus actuel par un nouveau. Il charge et exécute directement le programme spécifié, terminant efficacement le programme d'origine.

    * comment cela fonctionne:

    * Remplacement: Le processus d'appel est remplacé par le nouveau processus. Cela signifie qu'il n'y a pas de retour au programme d'origine.

    * Arguments: `EXECL` prend le nom de fichier exécutable et une liste d'arguments sous forme de paramètres. Il n'a pas la possibilité de gérer la redirection d'entrée / sortie standard.

    * Exemple:

    `` C

    #include

    #include

    int main () {

    execl ("/ bin / ls", "ls", "-l", null); // remplacer le processus actuel par 'ls -l'

    // Cette ligne ne sera pas atteinte

    retour 0;

    }

    `` '

    `System`

    * Objectif: «System» exécute une commande en tant que processus distinct. Il vous permet d'exécuter des commandes shell à partir de votre programme C.

    * comment cela fonctionne:

    * Fork et Exec: «System» utilise «Fork» pour créer un processus enfant. Ce processus d'enfant exécute ensuite la commande à l'aide de `EXECL`.

    * Processus séparés: Le processus d'origine et la commande nouvellement exécutée s'exécutent dans des processus distincts. Cela signifie que le processus d'origine peut se poursuivre une fois la commande terminée.

    * entrée / sortie: La fonction «Système» fournit un moyen de gérer les entrées, la sortie et la redirection d'erreur standard dans le shell.

    * Exemple:

    `` C

    #include

    int main () {

    système ("ls -l"); // exécuter «ls -l» comme processus distinct

    retour 0;

    }

    `` '

    Différences clés

    * Remplacement du processus: `EXECL` remplace le processus actuel, tandis que« System »crée un nouveau processus.

    * retour: `EXECL` ne revient pas au programme d'appel, tandis que« System »revient une fois la commande exécutée terminée.

    * Intégration de la coquille: «Système» donne accès aux capacités du shell pour la redirection des commandes et les tuyaux, tandis que `EXECL` exécute directement un programme.

    Quand utiliser chaque fonction

    * `execl`: Utilisez `EXECL` lorsque vous souhaitez remplacer complètement le processus actuel par un autre programme. Il convient aux cas où le programme d'appel n'a pas besoin de se poursuivre après le début du nouveau programme.

    * `System`: Utilisez «Système» lorsque vous souhaitez exécuter une commande en tant que processus distinct et conservez le contrôle du programme d'origine. Il convient aux scénarios où vous devez exécuter des commandes de shell ou rediriger l'entrée / sortie.

    Notes supplémentaires

    * Il existe d'autres variantes de `EXECL`:` EXECV`, `EXECLP`,` EXECVP`, etc., qui diffèrent dans la façon dont ils gèrent les arguments et les chemins de recherche.

    * Les deux `EXECL` et le Système 'ont des implications de sécurité. Si vous passez une entrée fournie par l'utilisateur à ces fonctions, assurez-vous de la désinfecter pour éviter les attaques potentielles d'injection de code.

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment faire pour trouver le nombre de correspondances dans Unix 
  • Que sont les variables shell ? Donnez un exemple ? 
  • Comment modifier une commande de mot de passe dans UNIX 
  • Quelle est la commande utilisée pour compresser un fichier sous Unix ? 
  • Unix email Tutorial 
  • Comment changer le mot de passe Expiration Unix 
  • Comment télécharger un système d'exploitation Unix 
  • Que signifie le be ping ? 
  • À quoi ressemble un nom de chemin absolu sous Linux ? 
  • Qu'est-ce que Lex et Yacc en termes de système d'exploitation Unix ? 
  • Connaissances Informatiques © http://www.ordinateur.cc