Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
execve - zum Ausfuhren von Programmen
Diese Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
die englischsprachige Handbuchseite zu Rate, indem Sie
man -LC 2 execve
eingeben.
SYNTAX
#include <unistd.h>
int execve (const char *dateiname, const char * argv[], const char
*envp[]);
BESCHREIBUNG
execve() fuhrt das Programm aus, auf das dateiname zeigt. dateiname
muss entweder ein binares ausfuhrbares Programm oder ein Shell-Skript,
welches mit einer Linie in der Form "#! Interpreter [arg]" beginnt,
sein.
execve() kehrt beim Erfolg nicht zuruck und der Text, Daten, bss, und
Stapel des aufrufenden Prozesses wird durch das geladene Programm
uberschrieben. Das aufgerufene Programm erbt die PID des aufrufenden
Prozesses, sowie jeden offenen Dateideskriptor, der zur Ausfuhrung
nicht geschlossen wurde. Signale bezuglich des elterlichen Prozesses
werden geloscht.
Falls das aktuelle Programm ptraced wird, wird nach erfolgreichem
execve() ein SIGTRAP gesendet.
R"UCKGABEWERT
Bei Erfolg kehrt execve() nicht zuruck, bei Fehlern wird -1
zuruckgegeben und errno wird dem entsprechend gesetzt.
FEHLER
EACCES Die Datei ist keine gultige Datei.
EACCES Die Erlaubnis zum ausfuhren der Datei wurde verweigert.
EPERM Das Dateisystem ist als noexec gemountet.
EPERM Das Dateisystem ist als nosuid gemountet und die Datei hat das
SUID oder SGID bit gesetzt.
E2BIG Die Argumentenliste ist zu lang.
ENOEXEC
Die magische Zahl in der Datei ist falsch.
EFAULT dateiname zeigt auf einen auBerhalb liegenden Adressraum.
ENAMETOOLONG
dateiname ist zu lang.
ENOENT Das File exestiert nicht.
ENOMEM Unzulanglicher Kernelspeicher war verfugbar.
ENOTDIR
Eine Komponente des vorangestellten Pfades ist kein Direktory.
EACCES die Suchrechte auf eine Komponente des vorangestellten Pfades
wurden verweigert.
ELOOP dateiname enthalt eine zirkulare Referenz (z.B, durch einen
symbolischen Link)
KONFORM ZU
SVID, AT&T, POSIX, X/OPEN, BSD 4.3
HINWEISE
SUID und SGID Prozesse konnen nicht als SUID oder SGID ptrace()'d
werden.
Eine maximale Lange von 127 Zeichen ist fur die erste Zeile eines #!
ausfuhrbaren Shell-Skripts erlaubt. Dies kann umgangen werden, indem
man die maximale GroBe des Puffers (buf) andert, in diesem Fall ist man
an die PuffergroBe von 1024 Bytes gebunden, was keine triviale Losung
darstellt.
SIEHE AUCH
execl(3), fork(2).