00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined (octave_syswait_h)
00024 #define octave_syswait_h 1
00025
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029
00030
00031
00032 #ifdef HAVE_SYS_TYPES_H
00033 #include <sys/types.h>
00034 #endif
00035
00036 #if defined (NeXT) && ! defined (_POSIX_SOURCE)
00037 #define HAVE_SYS_WAIT_H
00038 #endif
00039
00040 #if defined HAVE_SYS_WAIT_H
00041 #include <sys/wait.h>
00042 #endif
00043
00044 #if defined (NeXT)
00045 #define HAVE_WAITPID 1
00046 #define WAITPID(a, b, c) \
00047 wait4 ((a) == -1 ? 0 : (a), (union wait *)(b), c, 0)
00048
00049
00050 #undef WIFEXITED
00051 #undef WEXITSTATUS
00052 #undef WIFSIGNALLED
00053 #endif
00054
00055
00056
00057
00058 #if defined (NeXT)
00059 #include <sys/wait.h>
00060 #define waitpid(a, b, c) \
00061 wait4 ((a) == -1 ? 0 : (a), (union wait *)(b), c, 0)
00062 #endif
00063
00064 #ifndef WIFEXITED
00065 #define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
00066 #endif
00067
00068 #ifndef WEXITSTATUS
00069 #define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
00070 #endif
00071
00072 #ifndef WIFSIGNALLED
00073 #define WIFSIGNALLED(stat_val) \
00074 (((stat_val) & 0177) != 0177 && ((stat_val) & 0177) != 0)
00075 #endif
00076
00077 #if defined (__MINGW32__) || defined (_MSC_VER)
00078 #define HAVE_WAITPID 1
00079 #include <process.h>
00080 #define WAITPID(a, b, c) _cwait (b, a, c)
00081
00082 #define WNOHANG 0
00083 #else
00084 #define WAITPID(a, b, c) waitpid (a, b, c)
00085 #endif
00086
00087 #ifdef __cplusplus
00088 }
00089 #endif
00090
00091 #endif
00092
00093
00094
00095
00096
00097