[4] | 1 | /* The <sys/wait.h> header contains macros related to wait(). The value
|
---|
| 2 | * returned by wait() and waitpid() depends on whether the process
|
---|
| 3 | * terminated by an exit() call, was killed by a signal, or was stopped
|
---|
| 4 | * due to job control, as follows:
|
---|
| 5 | *
|
---|
| 6 | * High byte Low byte
|
---|
| 7 | * +---------------------+
|
---|
| 8 | * exit(status) | status | 0 |
|
---|
| 9 | * +---------------------+
|
---|
| 10 | * killed by signal | 0 | signal |
|
---|
| 11 | * +---------------------+
|
---|
| 12 | * stopped (job control) | signal | 0177 |
|
---|
| 13 | * +---------------------+
|
---|
| 14 | */
|
---|
| 15 |
|
---|
| 16 | #ifndef _WAIT_H
|
---|
| 17 | #define _WAIT_H
|
---|
| 18 |
|
---|
| 19 | #ifndef _TYPES_H
|
---|
| 20 | #include <sys/types.h>
|
---|
| 21 | #endif
|
---|
| 22 |
|
---|
| 23 | #define _LOW(v) ( (v) & 0377)
|
---|
| 24 | #define _HIGH(v) ( ((v) >> 8) & 0377)
|
---|
| 25 |
|
---|
| 26 | #define WNOHANG 1 /* do not wait for child to exit */
|
---|
| 27 | #define WUNTRACED 2 /* for job control; not implemented */
|
---|
| 28 |
|
---|
| 29 | #define WIFEXITED(s) (_LOW(s) == 0) /* normal exit */
|
---|
| 30 | #define WEXITSTATUS(s) (_HIGH(s)) /* exit status */
|
---|
| 31 | #define WTERMSIG(s) (_LOW(s) & 0177) /* sig value */
|
---|
| 32 | #define WIFSIGNALED(s) (((unsigned int)(s)-1 & 0xFFFF) < 0xFF) /* signaled */
|
---|
| 33 | #define WIFSTOPPED(s) (_LOW(s) == 0177) /* stopped */
|
---|
| 34 | #define WSTOPSIG(s) (_HIGH(s) & 0377) /* stop signal */
|
---|
| 35 |
|
---|
| 36 | /* Function Prototypes. */
|
---|
| 37 | _PROTOTYPE( pid_t wait, (int *_stat_loc) );
|
---|
| 38 | _PROTOTYPE( pid_t waitpid, (pid_t _pid, int *_stat_loc, int _options) );
|
---|
| 39 |
|
---|
| 40 | #endif /* _WAIT_H */
|
---|