annotate liboctave/syswait.h @ 6469:a848b846cb3a ss-2-9-10

[project @ 2007-03-27 18:42:11 by jwe]
author jwe
date Tue, 27 Mar 2007 18:42:11 +0000
parents 40212bfaed1d
children 93c65f2a5668
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
1 /*
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
2
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
3 Copyright (C) 1996, 1997 John W. Eaton
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
4
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
6
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
10 later version.
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
11
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
15 for more details.
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
16
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
5307
4c8a2e4e0717 [project @ 2005-04-26 19:24:27 by jwe]
jwe
parents: 2935
diff changeset
19 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
4c8a2e4e0717 [project @ 2005-04-26 19:24:27 by jwe]
jwe
parents: 2935
diff changeset
20 02110-1301, USA.
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
21
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
22 */
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
23
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
24 #if !defined (octave_syswait_h)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
25 #define octave_syswait_h 1
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
26
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
27 #ifdef __cplusplus
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
28 extern "C" {
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
29 #endif
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
30
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
31 /* This mess suggested by the autoconf manual. */
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
32
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
33 #ifdef HAVE_SYS_TYPES_H
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
34 #include <sys/types.h>
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
35 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
36
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
37 #if defined (NeXT) && ! defined (_POSIX_SOURCE)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
38 #define HAVE_SYS_WAIT_H
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
39 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
40
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
41 #if defined HAVE_SYS_WAIT_H
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
42 #include <sys/wait.h>
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
43 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
44
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
45 #if defined (NeXT)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
46 #define HAVE_WAITPID 1
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
47 #define WAITPID(a, b, c) \
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
48 wait4 ((a) == -1 ? 0 : (a), (union wait *)(b), c, 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
49
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
50 /* Use the defaults below. */
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
51 #undef WIFEXITED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
52 #undef WEXITSTATUS
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
53 #undef WIFSIGNALLED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
54 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
55
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
56 /* NeXT has sys/wait.h, but it is not compatible with POSIX.1, so we
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
57 try to define waitpid in terms of wait4. */
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
58
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
59 #if defined (NeXT)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
60 #include <sys/wait.h>
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
61 #define waitpid(a, b, c) \
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
62 wait4 ((a) == -1 ? 0 : (a), (union wait *)(b), c, 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
63 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
64
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
65 #ifndef WIFEXITED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
66 #define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
67 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
68
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
69 #ifndef WEXITSTATUS
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
70 #define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
71 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
72
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
73 #ifndef WIFSIGNALLED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
74 #define WIFSIGNALLED(stat_val) \
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
75 (((stat_val) & 0177) != 0177 && ((stat_val) & 0177) != 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
76 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
77
6096
40212bfaed1d [project @ 2006-10-26 01:57:49 by jwe]
jwe
parents: 5453
diff changeset
78 #if defined (__MINGW32__) || defined (_MSC_VER)
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
79 #define HAVE_WAITPID 1
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
80 #include <process.h>
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
81 #define WAITPID(a, b, c) _cwait (b, a, c)
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
82 /* Action argument is ignored for _cwait, so arbitrary definition. */
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
83 #define WNOHANG 0
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
84 #else
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
85 #define WAITPID(a, b, c) waitpid (a, b, c)
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
86 #endif
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
87
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
88 #ifdef __cplusplus
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
89 }
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
90 #endif
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
91
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
92 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
93
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
94 /*
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
95 ;;; Local Variables: ***
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
96 ;;; mode: C++ ***
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
97 ;;; End: ***
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
98 */