От клон человека 2 :
ОПИСАНИЕ
/* Prototype for the glibc wrapper function */
#define _GNU_SOURCE
#include <sched.h>
int clone(int (*fn)(void *), void *child_stack,
int flags, void *arg, ...
/* pid_t *ptid, void *newtls, pid_t *ctid */ );
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха идентификатор потока дочернего процесса возвращается в
вызывающая нить исполнения. При неудаче -1 возвращается в
контекст вызывающего, дочерний процесс не будет создан, и errno будет
установить соответственно.
Поскольку используется pid_t
в качестве типа возврата
- улучшить читаемость
- улучшить ремонтопригодность
- также может возвращать
-1
при возникновении ошибки
Почему clone
не возвращает pid_t
, вместо этого возвращает int
?