mirror of https://github.com/mkerrisk/man-pages
85 lines
2.6 KiB
Plaintext
85 lines
2.6 KiB
Plaintext
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
|
.TH "SETJMP" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
.\" setjmp
|
|
.SH NAME
|
|
setjmp \- set jump point for a non-local goto
|
|
.SH SYNOPSIS
|
|
.LP
|
|
\fB#include <setjmp.h>
|
|
.br
|
|
.sp
|
|
int setjmp(jmp_buf\fP \fIenv\fP\fB);
|
|
.br
|
|
\fP
|
|
.SH DESCRIPTION
|
|
.LP
|
|
A call to \fIsetjmp\fP() shall save the calling environment in its
|
|
\fIenv\fP argument for later use by \fIlongjmp\fP().
|
|
.LP
|
|
It is unspecified whether \fIsetjmp\fP() is a macro or a function.
|
|
If a macro definition is suppressed in order to access an
|
|
actual function, or a program defines an external identifier with
|
|
the name \fIsetjmp\fP, the behavior is undefined.
|
|
.LP
|
|
An application shall ensure that an invocation of \fIsetjmp\fP() appears
|
|
in one of the following contexts only:
|
|
.IP " *" 3
|
|
The entire controlling expression of a selection or iteration statement
|
|
.LP
|
|
.IP " *" 3
|
|
One operand of a relational or equality operator with the other operand
|
|
an integral constant expression, with the resulting
|
|
expression being the entire controlling expression of a selection
|
|
or iteration statement
|
|
.LP
|
|
.IP " *" 3
|
|
The operand of a unary \fB'!'\fP operator with the resulting expression
|
|
being the entire controlling expression of a
|
|
selection or iteration
|
|
.LP
|
|
.IP " *" 3
|
|
The entire expression of an expression statement (possibly cast to
|
|
\fBvoid\fP)
|
|
.LP
|
|
.LP
|
|
If the invocation appears in any other context, the behavior is undefined.
|
|
.SH RETURN VALUE
|
|
.LP
|
|
If the return is from a direct invocation, \fIsetjmp\fP() shall return
|
|
0. If the return is from a call to \fIlongjmp\fP(), \fIsetjmp\fP()
|
|
shall return a non-zero value.
|
|
.SH ERRORS
|
|
.LP
|
|
No errors are defined.
|
|
.LP
|
|
\fIThe following sections are informative.\fP
|
|
.SH EXAMPLES
|
|
.LP
|
|
None.
|
|
.SH APPLICATION USAGE
|
|
.LP
|
|
In general, \fIsigsetjmp\fP() is more useful in dealing with errors
|
|
and interrupts
|
|
encountered in a low-level subroutine of a program.
|
|
.SH RATIONALE
|
|
.LP
|
|
None.
|
|
.SH FUTURE DIRECTIONS
|
|
.LP
|
|
None.
|
|
.SH SEE ALSO
|
|
.LP
|
|
\fIlongjmp\fP() , \fIsigsetjmp\fP() , the Base Definitions volume
|
|
of
|
|
IEEE\ Std\ 1003.1-2001, \fI<setjmp.h>\fP
|
|
.SH COPYRIGHT
|
|
Portions of this text are reprinted and reproduced in electronic form
|
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
|
|
Electrical and Electronics Engineers, Inc and The Open Group. In the
|
|
event of any discrepancy between this version and the original IEEE and
|
|
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
is the referee document. The original Standard can be obtained online at
|
|
http://www.opengroup.org/unix/online.html .
|