Fonction system

Entête à  inclure

#include <stdlib.h>  // <cstdlib> en C++

Fonction system

int system( const char *command );

Cette fonction permet de lancer l'exécution d'une commande sur le système d'exploitation hôte : un nouveau processus est lancé pour chaque appel à cette fonction. L'appel à cette fonction bloquera le thread en cours jusqu'à que la commande lancée finisse. Si la sortie standard de votre programme est redirigée dans sur une console ou sur un fichier, vous pourrez y aussi retrouver les resultats produits par la commande exécutée par la fonction system.

Paramètres

  • command : cette chaîne contient la commande a exécuter sur le système d'exploitation. Attention : il est clair que la commande lancée doit impérativement exister sur le système hôte, sans quoi une erreur vous sera retournée.

Valeur de retour

Si tout se passe correctement, cette fonction renvoie, sous forme d'un entier, le code de retour de la commande exécutée. Normalement, une valeur nulle indique que tout c'est bien passé. La valeur -1 indique traditionnellement une erreur non précisée. Tout autre valeur est normalement considérée comme une erreur et documentée par l'aide de la commande considérée.

Exemple de code

#include <stdio.h>
#include <stdlib.h>

int main() {

    /* Affichage du contenu du répertoire courant sur un
       poste équipé d'un système d'exploitation Unix */

    const char * command = "ls -al"; 
    int cr = system( command );
    if ( cr != 0 ) {
        fprintf( stderr, 
                 "Impossible de lancer la commande : %s\n",
                 command );
    }

    return 0;
}

Fonctions connexes