#ifndef _SYS_WAIT_H #define _SYS_WAIT_H #ifdef __cplusplus extern "C" { #endif #include #define __NEED_pid_t #define __NEED_id_t #define __NEED_siginfo_t #include typedef int idtype_t; pid_t wait (int *); int waitid (idtype_t, id_t, siginfo_t *, int); pid_t waitpid (pid_t, int *, int ); #ifdef _GNU_SOURCE #include pid_t wait3 (int *, int, struct rusage *); pid_t wait4 (pid_t, int *, int, struct rusage *); #endif #define WNOHANG 1 #define WUNTRACED 2 #define WSTOPPED 2 #define WEXITED 4 #define WCONTINUED 8 #define WNOWAIT 0x1000000 #define P_ALL 0 #define P_PID 1 #define P_PGID 2 #ifndef WEXITSTATUS #define WEXITSTATUS(s) (((s) & 0xff00) >> 8) #define WTERMSIG(s) ((s) & 0x7f) #define WSTOPSIG(s) WEXITSTATUS(s) #define WCOREDUMP(s) ((s) & 0x80) #define WIFEXITED(s) (!WTERMSIG(s)) #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f) #define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0) #define WIFCONTINUED(s) ((s) == 0xffff) #endif #ifdef __cplusplus } #endif #endif