pthread_attr_getstackaddr.html
来自「posix标准英文,html格式」· HTML 代码 · 共 169 行
HTML
169 行
<!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-2004 IEEE and The Open Group, All Rights Reserved --><title>pthread_attr_getstackaddr</title></head><body bgcolor="white"><script type="text/javascript" language="JavaScript" src="../jscript/codes.js"></script><basefont size="3"> <a name="pthread_attr_getstackaddr"></a> <a name="tag_03_495"></a><!-- pthread_attr_getstackaddr --> <!--header start--><center><font size="2">The Open Group Base Specifications Issue 6<br>IEEE Std 1003.1, 2004 Edition<br>Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.</font></center><!--header end--><hr size="2" noshade><h4><a name="tag_03_495_01"></a>NAME</h4><blockquote>pthread_attr_getstackaddr, pthread_attr_setstackaddr - get and set the stackaddr attribute</blockquote><h4><a name="tag_03_495_02"></a>SYNOPSIS</h4><blockquote class="synopsis"><div class="box"><code><tt><sup>[<a href="javascript:open_code('THR TSA')">THR TSA</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> #include <<a href="../basedefs/pthread.h.html">pthread.h</a>><br><br> <img src="../images/opt-end.gif" alt="[Option End]" border="0"></tt></code></div><div class="box"><code><tt><sup>[<a href="javascript:open_code('OB')">OB</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0"> int pthread_attr_getstackaddr(const pthread_attr_t *restrict</tt> <i>attr</i><tt>,<br> void **restrict</tt> <i>stackaddr</i><tt>);<br> int pthread_attr_setstackaddr(pthread_attr_t *</tt><i>attr</i><tt>, void *</tt><i>stackaddr</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_495_03"></a>DESCRIPTION</h4><blockquote><p>The <i>pthread_attr_getstackaddr</i>() and <i>pthread_attr_setstackaddr</i>() functions, respectively, shall get and set thethread creation <i>stackaddr</i> attribute in the <i>attr</i> object.</p><p>The <i>stackaddr</i> attribute specifies the location of storage to be used for the created thread's stack. The size of thestorage shall be at least {PTHREAD_STACK_MIN}.</p></blockquote><h4><a name="tag_03_495_04"></a>RETURN VALUE</h4><blockquote><p>Upon successful completion, <i>pthread_attr_getstackaddr</i>() and <i>pthread_attr_setstackaddr</i>() shall return a value of 0;otherwise, an error number shall be returned to indicate the error.</p><p>The <i>pthread_attr_getstackaddr</i>() function stores the <i>stackaddr</i> attribute value in <i>stackaddr</i> ifsuccessful.</p></blockquote><h4><a name="tag_03_495_05"></a>ERRORS</h4><blockquote><p>These functions may fail if:</p><dl compact><dt>[EINVAL]</dt><dd>The value specified by <i>attr</i> does not refer to an initialized thread attribute object.</dd></dl><p>These functions shall not return an error code of [EINTR].</p></blockquote><hr><div class="box"><em>The following sections are informative.</em></div><h4><a name="tag_03_495_06"></a>EXAMPLES</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_03_495_07"></a>APPLICATION USAGE</h4><blockquote><p>The specification of the <i>stackaddr</i> attribute presents several ambiguities that make portable use of these interfacesimpossible. The description of the single address parameter as a "stack" does not specify a particular relationship between theaddress and the "stack" implied by that address. For example, the address may be taken as the low memory address of a bufferintended for use as a stack, or it may be taken as the address to be used as the initial stack pointer register value for the newthread. These two are not the same except for a machine on which the stack grows "up" from low memory to high, and on which a"push" operation first stores the value in memory and then increments the stack pointer register. Further, on a machine where thestack grows "down" from high memory to low, interpretation of the address as the "low memory" address requires a determinationof the intended size of the stack. IEEE Std 1003.1-2001 has introduced the new interfaces <a href="../functions/pthread_attr_setstack.html"><i>pthread_attr_setstack</i>()</a> and <a href="../functions/pthread_attr_getstack.html"><i>pthread_attr_getstack</i>()</a> to resolve these ambiguities.</p><p>After a successful call to <i>pthread_attr_setstackaddr</i>(), the storage area specified by the <i>stackaddr</i> parameter isunder the control of the implementation, as described in <a href="xsh_chap02_09.html#tag_02_09_08"><i>Use of Application-ManagedThread Stacks</i></a>.</p></blockquote><h4><a name="tag_03_495_08"></a>RATIONALE</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_03_495_09"></a>FUTURE DIRECTIONS</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_03_495_10"></a>SEE ALSO</h4><blockquote><p><a href="pthread_attr_destroy.html"><i>pthread_attr_destroy</i>()</a>, <a href="pthread_attr_getdetachstate.html"><i>pthread_attr_getdetachstate</i>()</a>, <a href="pthread_attr_getstack.html"><i>pthread_attr_getstack</i>()</a>, <a href="pthread_attr_getstacksize.html"><i>pthread_attr_getstacksize</i>()</a>, <a href="pthread_attr_setstack.html"><i>pthread_attr_setstack</i>()</a>, <a href="pthread_create.html"><i>pthread_create</i>()</a>, theBase Definitions volume of IEEE Std 1003.1-2001, <a href="../basedefs/limits.h.html"><i><limits.h></i></a>, <ahref="../basedefs/pthread.h.html"><i><pthread.h></i></a></p></blockquote><h4><a name="tag_03_495_11"></a>CHANGE HISTORY</h4><blockquote><p>First released in Issue 5. Included for alignment with the POSIX Threads Extension.</p></blockquote><h4><a name="tag_03_495_12"></a>Issue 6</h4><blockquote><p>The <i>pthread_attr_getstackaddr</i>() and <i>pthread_attr_setstackaddr</i>() functions are marked as part of the Threads andThread Stack Address Attribute options.</p><p>The <b>restrict</b> keyword is added to the <i>pthread_attr_getstackaddr</i>() prototype for alignment with theISO/IEC 9899:1999 standard.</p><p>These functions are marked obsolescent.</p><p>IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/85 is applied, updating the APPLICATION USAGE section to referto <a href="xsh_chap02_09.html#tag_02_09_08"><i>Use of Application-Managed Thread Stacks</i></a>.</p><p>IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/86 is applied, updating the ERRORS section to include optionalerrors for the case when <i>attr</i> refers to an uninitialized thread attribute object.</p></blockquote><div class="box"><em>End of informative text.</em></div><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>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?