I have read the following statement.
The status argument given to _exit() defines the termination status of the process, which is available to the p
When the child terminates, the kernel keeps some information about it. Among this information is the return code.
Meanwhile, the parent hasn't terminated. By calling wait or waitpid it simply asks the kernel "Hey, you know that child of mine? What's his status?".
wait
waitpid