Почему wait () устанавливает статус 256 вместо статуса выхода -1 для разветвленного процесса?

Я пытаюсь вернуть целочисленное значение из дочернего процесса.

Однако, если я использую exit (1) Я получаю 256 в качестве вывода. exit (-1) дает 65280 .

Есть ли способ получить фактическое значение int, которое я отправляю из дочернего процесса?

if(!(pid=fork()))
{
    exit(1);
}
waitpid(pid,&status,0);
printf("%d",status);

Изменить: Используя exit (-1) (чего я на самом деле хочу), я получаю 255 в качестве вывода для WEXITSTATUS (status). Он должен быть без подписи?

11
задан Ciro Santilli 新疆改造中心法轮功六四事件 27 July 2015 в 09:22
поделиться