Почему клон возвращает int, а не pid_t? - PullRequest
0 голосов
/ 16 января 2019

От клон человека 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. улучшить читаемость
  2. улучшить ремонтопригодность
  3. также может возвращать -1 при возникновении ошибки

Почему clone не возвращает pid_t, вместо этого возвращает int?

...