
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
/*
 * ===  FUNCTION  ======================================================================
 *         Name:  main
 *  Description:
 * =====================================================================================
 */
int main (void)
{
	int pid,status,exit_status;
	if ((pid = fork()) < 0){
		perror("fork failed!");
		exit(1);
	}
	if (!pid){
		sleep(4);
		exit(6);
	}
	/* 父进程 */
	if ((wait(&status)) < 0){
		perror("wait failed");
		exit(1);
	}
	/* 用来测试status的低八位是否为0 */
	if (status & 0xFF){
		printf("低八位不为0");
	}else{
	    printf("status:%d\n",status);
		/* 将status的高八位放置到exit_status当中 */
		exit_status = status >> 8;
		exit_status &= 0xFF;
		/* 用来输出子进程的结束的状态 */
		printf("exit status from %d is %d\n",pid,exit_status);
	}
	return EXIT_SUCCESS;
}				/* ----------  end of function main  ---------- */
