table of contents
other languages
other sections
EXECVE(2) | Podręcznik programisty Linuksa | EXECVE(2) |
NAZWA¶
execve - uruchomienie programuSKŁADNIA¶
#include <unistd.h>OPIS¶
Uwaga! To tłumaczenie może być nieaktualne! execve() uruchamia program wskazany przez filename. filename musi być albo wykonywalnym programem binarnym, albo skryptem powłoki, rozpoczynającym się od linii postaci " #! interpreter [arg]". W tym drugim przypadku, interpreter musi być prawidłową ścieżką do programu, a nie skryptem, który byłby uruchomiany jako interpreter [arg] filename.WARTOŚĆ ZWRACANA¶
Po pomyślnym zakończeniu execve() nie wraca, w wypadku błędu zwracane jest -1 i odpowiednio ustawiane errno .BŁĘDY¶
- EACCES
- Plik lub interpreter skryptu nie jest zwykłym plikiem.
- EACCES
- Brak praw wykonywania dla pliku, skryptu lub intepretera ELF.
- EACCES
- System plików jest zamontowany jako noexec.
- EPERM
- System plików jest zamontowany jako nosuid, użytkownik nie jest superużytkownikiem, a plik ma ustawiony bit SUID lub SGID.
- EPERM
- Proces jest śledzony (trace), użytkownik nie jest superużytkownikiem, a plik ma ustawiony bit SUID lub SGID.
- E2BIG
- Lista argumentów jest zbyt długa.
- ENOEXEC
- Nie rozpoznano formatu pliku binarnego, plik ten jest skompilowany dla innej architektury albo wystąpił jakiś inny błąd w formacie, który powoduje, że program nie może być uruchomiony.
- EFAULT
- filename wskazuje poza dostępną dla użytkownika przestrzeń adresową.
- ENAMETOOLONG
- filename jest zbyt długie.
- ENOENT
- Plik filename, skrypt, lub intepreter ELF nie istnieje albo nie można znaleźć biblioteki współdzielonej potrzebnej do uruchomienia pliku lub interpretera.
- ENOMEM
- Brak dostępnej pamięci jądra.
- ENOTDIR
- Składnik ścieżki filename, ścieżki skryptu lub ścieżki interpretera ELF nie jest katalogiem.
- EACCES
- Brak praw do przeszukiwania dla składnika ścieżki filename lub ścieżki interpretera skryptu.
- ELOOP
- Podczas rozwiązywania filename, nazwy skryptu lub interpretera ELF napotkano zbyt wiele dowiązań symbolicznych.
- ETXTBSY
- Plik wykonywalny był otwarty do zapisu przez jeden lub więcej procesów.
- EIO
- Wystąpił błąd wejścia-wyjścia.
- ENFILE
- Został osiągnięte ograniczenie liczby otwartych plików w systemie.
- EMFILE
- Proces osiągnął już maksymalną liczbę otwartych plików.
- EINVAL
- Plik wykonywalny w formacie ELF ma więcej niż jeden segment PT_INTERP (tzn. ma więcej niż jeden interpreter).
- EISDIR
- Intepreter ELF jest katalogiem.
- ELIBBAD
- Nie został rozpoznany format intepretera ELF.
ZGODNE Z¶
SVr4, SVID, X/OPEN, BSD 4.3. POSIX nie dokumentuje zachowania #!, lecz poza tym jest zgodny. SVr4 dokumentuje dodatkowe błędy EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX nie dokumentuje błędów ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL, EISDIR i ELIBBAD.UWAGI¶
Procesy ustawiające SUID lub SGID nie mogą być traktowane ptrace().ZOBACZ TAKŻE¶
chmod(2), fork(2), execl(3), environ(5), ld.so(8)INFORMACJE O TŁUMACZENIU¶
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:- man --locale=C 2 execve
1997-09-03 | Linux 2.0.30 |