Столкнулся с очень неприятной проблемой.
Если одна и та-же функция описана как секции мануала 2 - Unix and C system calls так и в 3 - C library routines for C programs.
Но описание поведеня у функции разное. Как определить поведение у себя в программе? Или как явно сообщить что я хочу использовать именно systemCall или C library function? Ведь и там и так одна и таже сигнатура функции и одни и теже инклуды.
Конкретно я столкнулся в функцией waitpid.
В man 2 говорится так :
The waitpid() system call suspends execution of the calling process until a child specified by pid argument has changed state.
В man 3 говорится так :
The wait() function shall suspend execution of the calling thread until status information for one of the terminated child processes of the calling process is available ... The waitpid() function shall be equivalent to wait() if the pid argument is (pid_t)-1 and the options argument is 0.
Я сначала был уверен в том, что на waitpid уснут потоки моего процесса (согластно man2), а по факту усыпал только один ( согластно man3)