Manpages

NAZWA

getpid, getppid - pobranie identyfikatora procesu

SKŁADNIA

#include <sys/types.h>
#include <unistd.h>

pid_t getpid(void);
pid_t getppid(void);

OPIS

getpid() zwraca identyfikator procesu wywołującego. (Jest to często wykorzystywane przez funkcje generujące unikatowe nazwy plików tymczasowych).

getppid() zwraca identyfikator procesu rodzica procesu wywołującego.

BŁĘDY

Funkcje te zawsze kończą się pomyślnie.

ZGODNE Z

POSIX.1-2001, POSIX.1-2008, 4.3BSD, SVr4.

UWAGI

Jeśli rodzic wywołującego jest w innej przestrzeni nazw PID (zob. pid_namespaces(7)), getppid() zwraca 0.

Różnice biblioteki C/jądra
Od wersji 2.3.4 biblioteki glibc funkcja opakowująca dla getpid() cache’uje identyfikatory procesów, aby uniknąć dodatkowych wywołań systemowych, jeśli proces powtarza wywołania getpid(). Normalnie jest to niewidoczne, ale poprawne działanie tego mechanizmu zależy od wsparcia w funkcjach opakowujących fork(2), vfork(2) i clone(2): jeżeli aplikacja omija funkcje opakowujące biblioteki glibc, używając syscall(2), to getpid() w procesie potomnym zwróci niepoprawną wartość (a dokładniej: zwróci identyfikator procesu rodzica). Patrz także clone(2), zawierający opis przypadku, w którym getpid() może zwrócić niepoprawną wartość, nawet jeżeli clone(2) uruchomiono poprzez funkcję opakowującą biblioteki glibc.

ZOBACZ TAKŻE

clone(2), fork(2), kill(2), exec(3), mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3), credentials(7), pid_namespaces(7)

O STRONIE

Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów, oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <pborys [AT] dione.pl>, Robert Luberda <robert [AT] debian.org> i Michał Kułach <michal.kulach [AT] gmail.com>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.07 oryginału.