Mercurial > hg > octave-kai > gnulib-hg
annotate lib/c-stack.h @ 10622:ac6f431cc95d
New module 'fclose'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 11 Oct 2008 14:18:29 +0200 |
parents | 9c24129c10e2 |
children | 024e032be5f2 |
rev | line source |
---|---|
3902
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
1 /* Stack overflow handling. |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
2 |
10279 | 3 Copyright (C) 2002, 2004, 2008 Free Software Foundation, Inc. |
3902
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
4 |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
5848
diff
changeset
|
5 This program is free software: you can redistribute it and/or modify |
3902
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
6 it under the terms of the GNU General Public License as published by |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
5848
diff
changeset
|
7 the Free Software Foundation; either version 3 of the License, or |
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
5848
diff
changeset
|
8 (at your option) any later version. |
3902
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
9 |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
10 This program is distributed in the hope that it will be useful, |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
13 GNU General Public License for more details. |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
14 |
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
15 You should have received a copy of the GNU General Public License |
9309
bbbbbf4cd1c5
Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
5848
diff
changeset
|
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
3902
f26afed46772
New file, from diffutils-2.8.2.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
17 |
10279 | 18 |
19 /* Set up ACTION so that it is invoked on C stack overflow and on other, | |
20 stack-unrelated, segmentation violation. | |
21 Return -1 (setting errno) if this cannot be done. | |
22 | |
23 When a stack overflow or segmentation violation occurs: | |
24 1) ACTION is called. It is passed an argument equal to | |
25 - 0, for a stack overflow, | |
26 - SIGSEGV, for a segmentation violation that does not appear related | |
27 to stack overflow. | |
28 On many platforms the two cases are hard to distinguish; when in doubt, | |
29 zero is passed. | |
30 2) If ACTION returns, a message is written to standard error, and the | |
31 program is terminated: in the case of stack overflow, with exit code | |
32 exit_failure (see "exitfail.h"), otherwise through a signal SIGSEGV. | |
33 | |
34 A null ACTION acts like an action that does nothing. | |
35 | |
36 ACTION must be async-signal-safe. ACTION together with its callees | |
37 must not require more than SIGSTKSZ bytes of stack space. Also, | |
38 ACTION should not call longjmp, because this implementation does | |
39 not guarantee that it is safe to return to the original stack. */ | |
40 | |
41 extern int c_stack_action (void (* /*action*/) (int)); |