annotate liboctave/syswait.h @ 7948:af10baa63915 ss-3-1-50

3.1.50 snapshot
author John W. Eaton <jwe@octave.org>
date Fri, 18 Jul 2008 17:42:48 -0400
parents a1dbe9d80eee
children 4c0cdbe0acca
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
7017
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
3 Copyright (C) 1996, 1997, 2005, 2006, 2007 John W. Eaton
2935
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
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6096
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6096
diff changeset
10 option) any later version.
2935
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
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6096
diff changeset
18 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6096
diff changeset
19 <http://www.gnu.org/licenses/>.
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
20
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 #if !defined (octave_syswait_h)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
24 #define octave_syswait_h 1
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
25
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
26 #ifdef __cplusplus
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
27 extern "C" {
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
28 #endif
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
29
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
30 /* This mess suggested by the autoconf manual. */
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
31
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
32 #ifdef HAVE_SYS_TYPES_H
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
33 #include <sys/types.h>
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
34 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
35
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
36 #if defined (NeXT) && ! defined (_POSIX_SOURCE)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
37 #define HAVE_SYS_WAIT_H
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
38 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
39
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
40 #if defined HAVE_SYS_WAIT_H
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
41 #include <sys/wait.h>
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
42 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
43
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
44 #if defined (NeXT)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
45 #define HAVE_WAITPID 1
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
46 #define WAITPID(a, b, c) \
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
47 wait4 ((a) == -1 ? 0 : (a), (union wait *)(b), c, 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
48
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
49 /* Use the defaults below. */
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
50 #undef WIFEXITED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
51 #undef WEXITSTATUS
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
52 #undef WIFSIGNALLED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
53 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
54
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
55 /* 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
56 try to define waitpid in terms of wait4. */
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
57
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
58 #if defined (NeXT)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
59 #include <sys/wait.h>
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
60 #define waitpid(a, b, c) \
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
61 wait4 ((a) == -1 ? 0 : (a), (union wait *)(b), c, 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
62 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
63
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
64 #ifndef WIFEXITED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
65 #define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
66 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
67
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
68 #ifndef WEXITSTATUS
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
69 #define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
70 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
71
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
72 #ifndef WIFSIGNALLED
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
73 #define WIFSIGNALLED(stat_val) \
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
74 (((stat_val) & 0177) != 0177 && ((stat_val) & 0177) != 0)
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
75 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
76
6096
40212bfaed1d [project @ 2006-10-26 01:57:49 by jwe]
jwe
parents: 5453
diff changeset
77 #if defined (__MINGW32__) || defined (_MSC_VER)
5453
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
78 #define HAVE_WAITPID 1
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
79 #include <process.h>
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
80 #define WAITPID(a, b, c) _cwait (b, a, c)
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
81 /* Action argument is ignored for _cwait, so arbitrary definition. */
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
82 #define WNOHANG 0
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
83 #else
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
84 #define WAITPID(a, b, c) waitpid (a, b, c)
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
85 #endif
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
86
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
87 #ifdef __cplusplus
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
88 }
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
89 #endif
89f5979e8552 [project @ 2005-09-17 00:50:58 by jwe]
jwe
parents: 5307
diff changeset
90
2935
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
91 #endif
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
92
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 ;;; Local Variables: ***
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
95 ;;; mode: C++ ***
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
96 ;;; End: ***
a57fdc645b1f [project @ 1997-05-06 03:49:43 by jwe]
jwe
parents:
diff changeset
97 */