wait3プログラム

#include < sys/types.h >
#include < sys/time.h >
#include < sys/resource.h >
#include < sys/wait.h >

#include < unistd.h >
#include < stdio.h >

int main()
{
    int status;
    pid_t pid;
    struct rusage usage;
    
    if ((pid = fork())< 0){
        perror("fork");
        return 1;
    } else if (pid == 0){
        write(1, "child process\n", 14);
        _exit(12);
    }
    write(1, "parent process\n", 15);
    
    if ((pid = wait3(&status, 0, &usage)) < 0) {
        perror("wait3");
        return 1;
    }
        if(WIFEXITED(status)){
            printf(
            "pid=%d exited with status = %d\n",
                   (int)pid, WEXITSTATUS(status));
        }
    printf(
    "user time = %ld.%06ld\n"
           "system time = %ld.%06ld\n",
           usage.ru_utime.tv_sec, usage.ru_utime.tv_usec,
           usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
    return 0;
        
}