139 lines
5.5 KiB
HTML
139 lines
5.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title>_longjmp</title>
|
|
</head>
|
|
<body bgcolor="white">
|
|
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
|
|
</script>
|
|
|
|
<basefont size="3"> <a name="_longjmp"></a> <a name="tag_03_03"></a><!-- _longjmp -->
|
|
<!--header start-->
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
|
|
|
|
<!--header end-->
|
|
<hr size="2" noshade>
|
|
<h4><a name="tag_03_03_01"></a>NAME</h4>
|
|
|
|
<blockquote>_longjmp, _setjmp - non-local goto</blockquote>
|
|
|
|
<h4><a name="tag_03_03_02"></a>SYNOPSIS</h4>
|
|
|
|
<blockquote class="synopsis">
|
|
<div class="box"><code><tt><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt=
|
|
"[Option Start]" border="0"> #include <setjmp.h><br>
|
|
<br>
|
|
void _longjmp(jmp_buf</tt> <i>env</i><tt>, int</tt> <i>val</i><tt>);<br>
|
|
int _setjmp(jmp_buf</tt> <i>env</i><tt>); <img src="../images/opt-end.gif" alt="[Option End]" border="0"></tt></code></div>
|
|
|
|
<tt><br>
|
|
</tt></blockquote>
|
|
|
|
<h4><a name="tag_03_03_03"></a>DESCRIPTION</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>_longjmp</i>() and <i>_setjmp</i>() functions shall be equivalent to <a href=
|
|
"../functions/longjmp.html"><i>longjmp</i>()</a> and <a href="../functions/setjmp.html"><i>setjmp</i>()</a>, respectively, with the
|
|
additional restriction that <i>_longjmp</i>() and <i>_setjmp</i>() shall not manipulate the signal mask.</p>
|
|
|
|
<p>If <i>_longjmp</i>() is called even though <i>env</i> was never initialized by a call to <i>_setjmp</i>(), or when the last such
|
|
call was in a function that has since returned, the results are undefined.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_04"></a>RETURN VALUE</h4>
|
|
|
|
<blockquote>
|
|
<p>Refer to <a href="longjmp.html"><i>longjmp</i>()</a> and <a href="setjmp.html"><i>setjmp</i>()</a> .</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_05"></a>ERRORS</h4>
|
|
|
|
<blockquote>
|
|
<p>No errors are defined.</p>
|
|
</blockquote>
|
|
|
|
<hr>
|
|
<div class="box"><em>The following sections are informative.</em></div>
|
|
|
|
<h4><a name="tag_03_03_06"></a>EXAMPLES</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_07"></a>APPLICATION USAGE</h4>
|
|
|
|
<blockquote>
|
|
<p>If <i>_longjmp</i>() is executed and the environment in which <i>_setjmp</i>() was executed no longer exists, errors can occur.
|
|
The conditions under which the environment of the <i>_setjmp</i>() no longer exists include exiting the function that contains the
|
|
<i>_setjmp</i>() call, and exiting an inner block with temporary storage. This condition might not be detectable, in which case the
|
|
<i>_longjmp</i>() occurs and, if the environment no longer exists, the contents of the temporary storage of an inner block are
|
|
unpredictable. This condition might also cause unexpected process termination. If the function has returned, the results are
|
|
undefined.</p>
|
|
|
|
<p>Passing <a href="../functions/longjmp.html"><i>longjmp</i>()</a> a pointer to a buffer not created by <a href=
|
|
"../functions/setjmp.html"><i>setjmp</i>()</a>, passing <i>_longjmp</i>() a pointer to a buffer not created by <i>_setjmp</i>(),
|
|
passing <a href="../functions/siglongjmp.html"><i>siglongjmp</i>()</a> a pointer to a buffer not created by <a href=
|
|
"../functions/sigsetjmp.html"><i>sigsetjmp</i>()</a>, or passing any of these three functions a buffer that has been modified by
|
|
the user can cause all the problems listed above, and more.</p>
|
|
|
|
<p>The <i>_longjmp</i>() and <i>_setjmp</i>() functions are included to support programs written to historical system interfaces.
|
|
New applications should use <a href="../functions/siglongjmp.html"><i>siglongjmp</i>()</a> and <a href=
|
|
"../functions/sigsetjmp.html"><i>sigsetjmp</i>()</a> respectively.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_08"></a>RATIONALE</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_09"></a>FUTURE DIRECTIONS</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>_longjmp</i>() and <i>_setjmp</i>() functions may be marked LEGACY in a future version.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_10"></a>SEE ALSO</h4>
|
|
|
|
<blockquote>
|
|
<p><a href="longjmp.html"><i>longjmp</i>()</a> , <a href="setjmp.html"><i>setjmp</i>()</a> , <a href=
|
|
"siglongjmp.html"><i>siglongjmp</i>()</a> , <a href="sigsetjmp.html"><i>sigsetjmp</i>()</a> , the Base Definitions volume of
|
|
IEEE Std 1003.1-2001, <a href="../basedefs/setjmp.h.html"><i><setjmp.h></i></a></p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_11"></a>CHANGE HISTORY</h4>
|
|
|
|
<blockquote>
|
|
<p>First released in Issue 4, Version 2.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_03_03_12"></a>Issue 5</h4>
|
|
|
|
<blockquote>
|
|
<p>Moved from X/OPEN UNIX extension to BASE.</p>
|
|
</blockquote>
|
|
|
|
<div class="box"><em>End of informative text.</em></div>
|
|
|
|
<hr>
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
</body>
|
|
</html>
|
|
|