进程同步,wait返回值

来源:互联网 发布:网络博客无法提现 编辑:程序博客网 时间:2024/05/22 00:16


#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>


int main()
{
    int pid, status, exit_status;


    pid=fork();
    if (pid<0)
    {   
        perror("fork failed\n");
        exit(1);
    }   


    if (!pid)
    {   
        sleep(5);
        exit(5);
    }   


    if (wait(&status)<0)
    {   
        perror("wait failed\n");
        exit(1);
    }   


    printf("status:%d\n", status);


    printf("status & 0xFF :%d\n", status & 0xFF);


    if (status & 0XFF)//低8位
    {   
        printf("some low-roderbits not zero\n");
    }   
    else
    {   
        exit_status = status >> 8;
        printf("exit_status :%d \n", exit_status);


        exit_status &= 0xFF;
        printf("exit status from %d was %d\n",pid, exit_status);
    }   
    return 0;
}