Просто запросите информацию о статусе дочерних процессов, созданных с помощью fork ()
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
int main (){
int pid;
int status;
printf("Parent: %d\n", getpid());
pid = fork();
if (pid == 0){
printf("Child %d\n", getpid());
sleep(4);
exit(1);
}
waitpid(pid, &status, 0);
printf("The status of child is %u\n",status);
printf("Parent: %d\n", getpid());
return 0;
}
Я ожидаю, что статус напечатает 1, но он печатает 256 (добавлен байт 0)
Может кто-нибудь объяснить, почему это? Я новичок в C, поэтому прошу прощения, поскольку этот вопрос может показаться глупым экспертам.