NAZWA¶
execl, execlp, execle, execv, execvp - uruchomienie pliku
SKŁADNIA¶
#include <unistd.h>
 
extern char **environ;
 
int execl(const char *path, const char *arg,
  ...);
 
int execlp(const char *file, const char *arg,
  ...);
 
int execle(const char *path, const char *arg ,
  ..., char * const envp[]);
 
int execv(const char *path, char *const
  argv[]);
 
int execvp(const char *file, char *const
  argv[]);
OPIS¶
 Uwaga! To tłumaczenie może być nieaktualne!
Rodzina funkcji 
exec zastępuje w pamięci obraz aktualnego
  procesu obrazem nowego procesu. Funkcje opisane na tej stronie man są
  tylko nakładkami dla funkcji 
execve(2). (Dodatkowych informacji na
  temat nadpisywania aktualnego procesu szukaj na stronie man tej funkcji.)
Pierwszym argumentem tych funkcji jest ścieżka do pliku, który ma
  być uruchomiony.
Kolejne wyrażenia 
const char *arg w funkcjach 
execl,
  
execlp, i 
execle można traktować jako 
arg0,
  
arg1, ..., 
argn. Razem opisują one listę jednego lub
  więcej wskaźników do zakończonych znakiem NUL
  łańcuchów, reprezentujących listę argumentów
  udostępnoianych wykonywanemu programowi. Pierwszy argument, zgodnie z
  konwencją, powinien wskazywać na nazwę pliku
  powiązaną z wykonywanym plikiem. Lista argumentów 
musi
  być zakończona wskaźnikiem 
NULL.
Funkcje 
execv oraz 
execvp udostępniają tablicę
  wskaźników do zakończonych znakami NUL
  łańcuchów, które reprezentują listę
  argumentów dostępnych dla wykonywanego programu. Pierwszy argument,
  zgodnie z konwencją, powinien wskazywać na nazwę pliku
  powiązaną z wykonywanym plikiem. Tablica wskaźników
  
musi być zakończona wskaźnikiem 
NULL.
Funkcja 
execle dodatkowo określa środowisko wykonywanego
  procesu poprzez dodanie po wskaźniku 
NULL, kończącym
  listę argumentów w liście parametrów lub po tablicy argv
  dodatkowego argumentu. Tym dodatkowym argumentem jest tablica
  wskaźników do zakończonych znakami NUL
  łańcuchów, która to tablica 
musi być
  zakończona wskaźnikiem 
NULL. Pozostałe funkcje
  pobierają środowisko dla nowego procesu z zewnętrznej zmiennej
  
environ aktualnego procesu.
Niektóre z tych funkcji mają specyficzną semantykę.
Funkcje 
execlp oraz 
execvp wykonują zadania powłoki
  szukając pliku wykonywalnego, jeśli nazwa pliku nie zawiera znaku
  ukośnika (/). Ścieżka przeszukiwania to ścieżka
  podana w zmiennej środowiskowej 
PATH. Jeśli zmienna ta nie
  istnieje, przyjmowana jest domyślna ścieżka ``:/bin:/usr/bin''.
  Dodatkowo pewne błędy traktowane są odmiennie.
Jeśli dostęp do pliku został zabroniony (wywołanie
  
execve zwróciło 
EACCES), funkcje te będą
  przeszukiwać resztę ścieżki. Jeśli jednak nie
  odnajdą innego pliku, powrócą i zmienią wartość
  zmiennej globalnej 
errno na 
EACCES.
Jeśli nagłówek nie zostanie rozpoznany (wywołanie
  
execve zwróci 
ENOEXEC), funkcje te spróbują
  uruchomić powłokę ze ścieżką do pliku jako
  pierwszym argumentem. (Jeśli i ta próba się nie powiedzie,
  przeszukiwanie jest zakończone.)
WARTOŚĆ ZWRACANA¶
Jeśli dowolna z funkcji 
exec powróci, oznacza to że
  nastąpił błąd. Zwracana jest wartość -1 i
  ustawiana jest zmienna globalna 
errno aby wskazać błąd.
PLIKI¶
/bin/sh
BŁĘDY¶
Każda z tych funkcji może zakończyć się niepowodzeniem
  i ustawić jako wartość 
errno dowolny błąd
  określony dla funkcji bibliotecznej 
execve(2).
ZOBACZ TAKŻE¶
sh(1), 
execve(2), 
fork(2), 
environ(5),
  
ptrace(2)
KOMPATYBILNOŚĆ¶
W niektórych systemach domyślna ścieżka (używana, gdy
  środowisko nie zawiera zmiennej 
PATH) zawiera aktualny katalog na
  samym końcu listy, po 
/bin oraz 
/usr/bin, aby zapobiec
  koniom trojańskim. Linux korzysta tu z tradycyjnej domyślnej
  ścieżki z aktualnym katalogiem na początku.
Zachowanie 
execlp oraz 
execvp w przypadku wystąpienia
  błędów podczas uruchamiania pliku jest przyjęte jako
  tradycyjne, ale nie jest udokumentowane przez standard POSIX. BSD (a być
  może także inne systemy) po napotkaniu błędu ETXTBSY czeka
  przez chwilę i próbuje ponownie. Linux traktuje to jako
  błąd i powraca natychmiast.
Tradycyjnie, funkcje 
execlp oraz 
execvp ignorowały wszystkie
  błędy oprócz podanych powyżej, 
ENOMEM i
  
E2BIG, po których powracały. Obecnie powracają
  jeśli wystąpi dowolny błąd inny od opisanych powyżej.
ZGODNE Z¶
Funkcje 
execl, 
execv, 
execle, 
execlp oraz
  
execvp są zgodne ze standardem IEEE Std1003.1-88 (`POSIX.1'').
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 3 exec
 
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
  znaleźć pod adresem
  
http://sourceforge.net/projects/manpages-pl/.