Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       getpid, getppid - получение идентификатора процесса

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <unistd.h>

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

ОПИСАНИЕ

       Вызов  getpid() возвращает идентификатор (PID) вызвавшего процесса (часто используется функциями, которые
       генерируют уникальные имена временных файлов).

       Вызов getppid() возвращает идентификатор процесса, являющегося родительским  по  отношению  к  вызвавшему
       процессу.  Результат  равен  идентификатору  процесса,  который создал этот процесс с помощью fork(), или
       идентификатору процесса, который заместил родителя (или init(1), или процесс  «сборщик»,  определённый  с
       помощью операции PR_SET_CHILD_SUBREAPER вызовом prctl(2)), если этот процесс уже завершён.

ОШИБКИ

       Функции всегда завершаются успешно.

ВЕРСИИ

       На  Alpha  вместо  пары  системных  вызовов  getpid() и getppid() предоставляется один getxpid(), который
       возвращает пару PID и родительский PID. Обёрточные функции  glibc  getpid()  и  getppid()  скрывают  это.
       Подробности об отображении регистров смотрите в syscall(2).

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       POSIX.1-2001, 4.3BSD, SVr4.

   Отличия между библиотекой C и ядром
       From  glibc  2.3.4  up to and including glibc 2.24, the glibc wrapper function for getpid()  cached PIDs,
       with the goal of avoiding additional system calls when a process calls  getpid()   repeatedly.   Normally
       this  caching  was  invisible,  but  its correct operation relied on support in the wrapper functions for
       fork(2), vfork(2), and clone(2): if an application bypassed the glibc wrappers for these system calls  by
       using  syscall(2),  then a call to getpid()  in the child would return the wrong value (to be precise: it
       would return the PID of the parent process).  In addition, there were cases where getpid()  could  return
       the  wrong  value  even when invoking clone(2)  via the glibc wrapper function.  (For a discussion of one
       such case, see BUGS in clone(2).)  Furthermore, the complexity of the caching code had been the source of
       a few bugs within glibc over the years.

       Because of the aforementioned problems, since glibc 2.25, the PID cache is  removed:  calls  to  getpid()
       always invoke the actual system call, rather than returning a cached value.

ПРИМЕЧАНИЯ

       Если  родитель  вызывающего  находит  в  другом  пространстве  имён  PID (смотрите pid_namespaces(7)), то
       getppid() возвращает 0.

       Со стороны ядра PID (одинаков у всех нитей  в  многонитевом  процессе)  иногда  называют  идентификатором
       группы  нитей  (TGID). Он отличается от идентификатора нити (TID), который является уникальным для каждой
       нити. Подробней смотрите в gettid(2) и описание флага CLONE_THREAD в clone(2).

СМОТРИТЕ ТАКЖЕ

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

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства  разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>,
       Dmitry  Bolkhovskikh   <d20052005@yandex.ru>,   Vladislav   <ivladislavefimov@gmail.com>,   Yuri   Kozlov
       <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот  перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html  версии  3  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                        getpid(2)