Зарегистрировать обработчики создания новых процессов
#include <process.h>int pthread_atfork( void (*prepare)( void ),void (*parent)( void ),void (*child)( void ) );
NULL
или указатель на обработчик, вызываемый перед fork().NULL
или указатель на обработчик, вызываемый после fork() в родительском процессе.NULL
или указатель на обработчик, вызываемый после fork() в дочернем процессе.libc
Функция pthread_atfork() регистрирует функции-обработчики перед или после вызовом fork() в контексте потока, вызывающего fork(). Можно установить один или более аргументов как NULL
, чтобы указать, что соответствующие обработчики отсутствуют.
С помощью вызова pthread_atfork() можно указать несколько обработчиков fork() каждого вида: prepare, parent и child. В этом случае обработчики parent и child вызываются вызываются повторно в порядке их регистрации, а обработчики prepare вызываются в обратном порядке.
Применение функции pthread_atfork() возможно лишь начиная с ЗОСРВ «Нейтрино» редакции 2020, поскольку ранее не поддерживался вызов fork() для многопоточных процессов. |
POSIX 1003.1 Threads
Предыдущий раздел: Описание API системной библиотеки