Sommaire

Chargement et exécution d’un programme externe Processus:exécution d’un programme externe

Très souvent, un processus enfant est créé dans le but de lui faire charger et exécuter un programme différent de celui du processus parent. C’est par exemple de cette façon que le shell gère les commandes externes, c’est-à-dire celles associées à un fichier exécutable.

L’appel système execve() permet de gérer ce mécanisme.

1. Appel système execve()

Syntaxe

#include <unistd.h> 
int execve(const char *pathname, char *const argv[], char *const 
envp[]);

Arguments

pathname

Chemin d’accès du fichier exécutable à charger et à exécuter

argv

Adresse du tableau d’arguments pour le programme à exécuter

envp

Adresse du tableau d’environnement pour le programme à exécuter

Valeur retournée

-1

Erreur, code erreur positionné dans la variable errno

Cet appel système ne retourne jamais en cas de succès.

Description

Cet appel système a pour but de remplacer le programme qu’exécute le processus courant par un nouveau programme contenu dans le fichier exécutable dont on lui indique le chemin d’accès. S’il réussit, il termine le programme en cours et ne retourne rien. Les lignes de code se situant après l’appel système ne sont traitées qu’en cas d’échec ...