Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion:
[Actualités]
Nvidia prévient d'une pénurie de GPU ce trimestre, avec une reprise début 2025
[Actualités]
Les Technos #469 : Un jour sans fin
[Actualités]
Test Farming Simulator 25 (PS5) - Des innovations intéressantes mais des perfor...
[Actualités]
Qualcomm souhaite réduire davantage les prix des PC Windows basés sur ARM
[Actualités]
Finalement, Google préparerait une nouvelle tablette mais la Pixel Tablet 2 ser...
[Actualités]
Windows 10 version 22H2 : erreur de mise à jour et de désinstallation
[Actualités]
OpenAI prépare désormais son propre navigateur
[Actualités]
WhatsApp bat Telegram : les transcriptions des messages vocaux arrivent pour tou...
[Actualités]
Unreal et Unreal Tournament désormais gratuits sur Internet Archive
[Actualités]
Windows 10 : Microsoft affiche des publicités en plein écran pour les PC équi...
[Articles]
Dungeons 4 - Nintendo Switch Edition
[Articles]
The Bridge Curse 2 : The Extrication
[Articles]
Farmagia
[Articles]
I*CHU: Chibi Edition
[Articles]
Farming Simulator 25
[Articles]
Goblin Slayer -Another Adventurer- Nightmare Feast
[Articles]
Deel lance des programmes en marque blanche et pour les revendeurs pour plus de ...
[Articles]
ESET Research : WolfsBane, nouvelle porte dérobée de cyber-espionnage Linux cr...
[Articles]
Devoteam présente son nouveau plan stratégique « AMPLIFY » avec un fort acce...
[Articles]
LEGO Horizon Adventures
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 ^^
Software
problème sur windows 10
Réseaux et Télécom
Administrateur Réseau - Cisco
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
Matériel
Nvidia prévient d'une pénurie de GPU ce trimestre, avec une reprise début 2025
Les Technos
Les Technos #469 : Un jour sans fin
Jeux Vidéos
Test Farming Simulator 25 (PS5) - Des innovations intéressantes mais des performances à revoir
Matériel
Qualcomm souhaite réduire davantage les prix des PC Windows basés sur ARM
Tablettes
Finalement, Google préparerait une nouvelle tablette mais la Pixel Tablet 2 serait abandonnée
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-2024
Akretio
SPRL - Generated via
Kelare
The Akretio Network:
Akretio
-
Freedelity
-
KelCommerce
-
Votre publicité sur informaticien.be ?