Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion:
[Actualités]
Netflix ne fonctionnera plus sur PlayStation 3 à compter du 2 mars
[Actualités]
La PDG d'AMD révèle la date de sortie prévue de la nouvelle Xbox.
[Actualités]
Test ILA : A Frosty Glide (PS5) - Une aventure cosy dans un "micro monde ouvert'
[Actualités]
Amazon Fire TV interdit les applications non autorisées : le blocage est désor...
[Actualités]
Un nouveau processeur Intel sans carte graphique intégrée a fait son apparitio...
[Actualités]
Adobe ferme son application Animate.
[Actualités]
Les cartes graphiques AMD vont devenir beaucoup plus chères.
[Actualités]
La Nintendo Switch est désormais la console la plus vendue de Nintendo
[Actualités]
Sony brevète un système de création de podcasts d'IA mettant en scène les vo...
[Actualités]
Firefox vous permet de désactiver l'intelligence artificielle. Les utilisateurs...
[Articles]
Rainmaker - La vie étonnante de Charles Hatfield
[Articles]
ILA : A Frosty Glide
[Articles]
Disco Simulator
[Articles]
Les Taureaux de Minos
[Articles]
Just Twilight tome 2
[Articles]
Crime Simulator
[Articles]
Une pente glissante : les arnaques et autres cybermenaces liées aux Jeux olymp...
[Articles]
Yotsuya Ghost Knight
[Articles]
Red Dead Redemption
[Articles]
Achève-moi tome 2
Actualités
Lettre d'information
Proposer une actualité
Archives
Actualités
Articles
Programmation
Press Release
Matériel
Logiciels
Livres
Interviews
Derniers commentaires
Jeux Vidéos
XBox One
XBox 360
Wii U
PSP
PS4
PS3
PC
DS
GameCube
3DS
Forum
Derniers messages
Informatique
Fun
Divers
Logithèque
Blogs
Divers
A Propos
Annonceurs
Contact
Recherche
RSS
Editer un article
Titre
Mots Clés
Texte
[size=18] [b]Nom[/b] [/size] execve - Exécuter un programme. [size=18] [b]Résumé[/b] [/size] [b]#include
[/b] [b][i]int execve (const char * fichier , char * const argv[/i][/b] [b][i][], char * const envp []);[/i][/b] [size=18] [b]Description[/b] [/size] [b]execve()[/b] exécute le programme correspondant au [i]fichier[/i]. Celui-ci doit être un exécutable binaire ou bien un script commençant par une ligne du type "[b]#![/b] [i]interpréteur[/i] [arg]". Dans ce dernier cas, l'interpréteur doit être indiqué par un nom complet, avec son chemin d'accès, et qui sera invoqué sous la forme [b]interpréteur[/b] [arg] [i]fichier[/i]. [i]argv[/i] est un tableau de chaînes d'arguments passées au nouveau programme. [i]envp[/i] est un tableau de chaînes, ayant par convention la forme [b]cle=valeur ,[/b] qui sont passées au nouveau programme comme environnement. [i]argv[/i] ainsi que [i]envp[/i] doivent se terminer par un pointeur NULL. Les arguments et l'environnement sont accessibles par le nouveau programme dans sa fonction principale, lorsqu'elle est définie comme [b]int[/b] main (int argc, char * argv [], char * envp []). En cas de réussite, [b]execve()[/b] ne revient pas à l'appelant, et les segments de texte, de données, ainsi que la pile du processus appelant sont remplacés par ceux du programme chargé. Le programme invoqué hérite du PID du processus appelant, et de tous les descripteurs de fichiers qui ne possèdent pas le drapeau Close-on-Exec. Les signaux en attente destinés au processus parent sont effacés. Les signaux prêts à être intercepté par le processus appelant reprennent leur comportement par défaut. Le signal SIGCHLD (lorsqu'il est configuré sur SIG_IGN) peut ou non être réinitialisé à SIG_DFL. Si l'on effectuait un [b]ptrace (2)[/b] sur le programme appelant, un signal [b]SIGTRAP[/b] est envoyé après la réussite de [b]execve()[/b]. Si le bit Set-UID est positionné sur le [i]fichier[/i] du programme, l'UID effectif du processus appelant est modifié pour prendre celui du propriétaire du fichier. De même, lorsque le bit Set-GID est positionné, le GID effectif est modifié pour correspondre à celui du groupe du fichier. Si l'exécutable est un fichier binaire a.out lié dynamiquement, et contenant des appels aux bibliothèques partagées, le linker dynamique de Linux [b]ld.so (1)[/b] est appelé avant l'exécution, afin de charger les bibliothèques partagées nécessaires en mémoire, et d'effectuer l'édition des liens de l'exécutable. Si l'exécutable est au format ELF lié dynamiquement, l'interpréteur indiqué dans le segment PT_INTERP sera invoqué pour charger les bibliothèques partagées. Cet interpréteur est généralement [i]/lib/ld-linux.so.1[/i] pour les fichiers binaires liés avec la libc Linux version 5, ou [i]/lib/ld-linux.so.2[/i] pour ceux liés avec la GNU libc version 2. [size=18] [b]Valeur renvoyée[/b] [/size] En cas de réussite, [b]execve()[/b] ne revient pas, en cas d'échec il renvoie -1 et [i]errno[/i] contient le code d'erreur. [size=18] [b]Erreurs[/b] [/size] [b]EACCES[/b] [table][row][col] [/col][col]Le [i]fichier[/i] n'est pas un fichier régulier.[/col][/row][/table] [b]EACCES[/b] [table][row][col] [/col][col]L'autorisation d'exécution est refusée pour le [i]fichier[/i], ou un script, ou un interpréteur ELF.[/col][/row][/table] [b]EACCES[/b] [table][row][col] [/col][col]Le système de fichiers est monté avec l'option [b]noexec .[/b][/col][/row][/table] [b]EPERM[/b] [table][row][col] [/col][col]Le système de fichiers est monté avec l'attribut [i]nosuid[/i] et le fichier a un bit Set-UID ou Set-GID positionné.[/col][/row][/table] [b]EPERM[/b] [table][row][col] [/col][col]Le processus est suivi avec [b]ptrace[/b](2), l'utilisateur n'est pas le Super-User, et le fichier a un bit Set-UID ou Set-GID activé.[/col][/row][/table] [b]E2BIG[/b] [table][row][col] [/col][col]La liste d'arguments est trop grande.[/col][/row][/table] [b]ENOEXEC[/b] [table][row][col] [/col][col]Le fichier exécutable n'est pas dans le bon format, ou est destiné à une autre architecture.[/col][/row][/table] [b]EFAULT[/b] [table][row][col] [/col][col]L'argument [i]fichier[/i] pointe en dehors de l'espace d'adressage accessible.[/col][/row][/table] [b]ENAMETOOLONG[/b] [table][row][col] [/col][col]La chaîne de caractères [i]fichier[/i] est trop longue.[/col][/row][/table] [b]ENOENT[/b] [table][row][col] [/col][col]Le [i]fichier[/i] ou un script ou un interpréteur ELF n'existe pas, ou une bibliothèque partagée nécessaire pour le fichier ou l'interpréteur n'est pas disponible.[/col][/row][/table] [b]ENOMEM[/b] [table][row][col] [/col][col]Pas assez de mémoire pour le noyau.[/col][/row][/table] [b]ENOTDIR[/b] [table][row][col] [/col][col]Un élément du chemin d'accès n'est pas un répertoire.[/col][/row][/table] [b]EACCES[/b] [table][row][col] [/col][col]L'accès à un élément du chemin n'est pas autorisé.[/col][/row][/table] [b]ELOOP[/b] [table][row][col] [/col][col]Le chemin d'accès au [i]fichier [/i] contient une référence circulaire (à travers un lien symbolique)[/col][/row][/table] [b]ETXTBSY[/b] [table][row][col] [/col][col]Le [i]fichier[/i] exécutable a été ouvert en écriture par un ou plusieurs processus.[/col][/row][/table] [b]EIO[/b] [table][row][col] [/col][col]Une erreur d'entrée/sortie de bas-niveau s'est produite.[/col][/row][/table] [b]ENFILE[/b] [table][row][col] [/col][col]Le nombre maximal de fichiers ouverts sur le système est atteint[/col][/row][/table] [b]EMFILE[/b] [table][row][col] [/col][col]Le nombre maximal de fichiers ouverts par processus est atteint.[/col][/row][/table] [b]EINVAL[/b] [table][row][col] [/col][col]Un exécutable ELF a plusieurs segments PT_INTERP (indique plusieurs interpréteurs).[/col][/row][/table] [b]EISDIR[/b] [table][row][col] [/col][col]L'interpréteur ELF cité est un répertoire.[/col][/row][/table] [b]ELIBBAD[/b] [table][row][col] [/col][col]L'interpréteur ELF mentionné n'est pas dans un format connu.[/col][/row][/table] [size=18] [b]Conformité[/b] [/size] SVr4, SVID, X/OPEN, BSD 4.3. POSIX ne documente pas le comportement avec #! mais est néanmoins compatible. SVr4 décrit des erreurs supplémentaires EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX ne décrit pas les conditions d'erreur ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL, EISDIR, ni ELIBBAD. [size=18] [b]Notes[/b] [/size] Les processus Set-UID et Set-GID ne peuvent pas être suivis par [b]ptrace()[/b]. Linux ignore les bits Set-UID et Set-GID sur les scripts. Le résultat d'un montage de système de fichiers avec l'attribut [i]nosuid[/i] peut varier suivant les versions de noyau : certaines refuseront l'exécution des fichiers SUID/SGID lorsque cela donnerait à l'appelant des privilèges qu'il n'a pas (et renverront l'erreur EPERM), d'autres ignoreront simplement les bits SUID/SGID mais accepteront d'effectuer l'appel execve. La première ligne d'un shell script exécutable (#!) a une longueur maximale de 127 caractères. [size=18] [b]Voir aussi[/b] [/size] [b]chmod (2),[/b] [b]fork (2),[/b] [b]execl (3),[/b] [b]environ (5),[/b] [b]ld.so (8).[/b] [size=18] [b]Traduction[/b] [/size] Christophe Blaess, 1996-2003.
Fichier
Forum
-
Derniers messages
Bavardages
Aujourd'hui, je rénove ou je construis ^^
Informations
Besoin d’avis sur l’UX de mon mini-projet web (et plus globalement sur ce qui vous rebute sur un site) ?
Software
problème sur windows 10
Réseaux et Télécom
Problème wifi (POE)
Software
Postfix - Need help
Bavardages
Oh râge oh désespoir !
Programmation
Enregistrement client et envoi mail
Software
SÉCURITÉ MACBOOK
Hardware
conseil matos réseau?
Hardware
nVidia Shield Android TV
Actualités
-
Archives
Vidéo
Netflix ne fonctionnera plus sur PlayStation 3 à compter du 2 mars
Consoles
La PDG d'AMD révèle la date de sortie prévue de la nouvelle Xbox.
Jeux Vidéos
Test ILA : A Frosty Glide (PS5) - Une aventure cosy dans un "micro monde ouvert'
Logiciels
Amazon Fire TV interdit les applications non autorisées : le blocage est désormais total
Intel
Un nouveau processeur Intel sans carte graphique intégrée a fait son apparition en ligne.
Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be
- © 2002-2026
Akretio
SPRL - Generated via
Kelare
The Akretio Network:
Akretio
-
Freedelity
-
KelCommerce
-
Votre publicité sur informaticien.be ?