Unix/Linux Go Back    

Linux 2.6 - man page for pthread_attr_getstack (linux section 3posix)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


       pthread_attr_getstack, pthread_attr_setstack - get and set stack attributes

       #include <pthread.h>

       int pthread_attr_getstack(const pthread_attr_t *restrict attr,
	      void **restrict stackaddr, size_t *restrict stacksize);
       int pthread_attr_setstack(pthread_attr_t *attr, void *stackaddr,
	      size_t stacksize);

       The pthread_attr_getstack() and pthread_attr_setstack() functions, respectively, shall get
       and set the thread creation stack attributes stackaddr and stacksize in the attr object.

       The stack attributes specify the area of storage to  be	used  for  the	created  thread's
       stack.  The base (lowest addressable byte) of the storage shall be stackaddr, and the size
       of  the	storage  shall	be  stacksize  bytes.	The   stacksize   shall   be   at   least
       {PTHREAD_STACK_MIN}.  The  stackaddr shall be aligned appropriately to be used as a stack;
       for example, pthread_attr_setstack() may fail with [EINVAL] if ( stackaddr & 0x7)  is  not
       0.  All pages within the stack described by stackaddr and stacksize shall be both readable
       and writable by the thread.

       Upon successful completion, these functions shall return a value of 0; otherwise, an error
       number shall be returned to indicate the error.

       The  pthread_attr_getstack()  function shall store the stack attribute values in stackaddr
       and stacksize if successful.

       The pthread_attr_setstack() function shall fail if:

       EINVAL The value of stacksize is less than {PTHREAD_STACK_MIN} or exceeds  an  implementa-
	      tion-defined limit.

       The pthread_attr_setstack() function may fail if:

       EINVAL The  value of stackaddr does not have proper alignment to be used as a stack, or if
	      ( stackaddr + stacksize) lacks proper alignment.

       EACCES The stack page(s) described by stackaddr and stacksize are not  both  readable  and
	      writable by the thread.

       These functions shall not return an error code of [EINTR].

       The following sections are informative.


       These  functions are appropriate for use by applications in an environment where the stack
       for a thread must be placed in some particular region of memory.

       While it might seem that an application could detect stack overflow by  providing  a  pro-
       tected  page outside the specified stack region, this cannot be done portably. Implementa-
       tions are free to place the thread's initial stack pointer anywhere within  the	specified
       region  to  accommodate	the machine's stack pointer behavior and allocation requirements.
       Furthermore, on some architectures, such as the IA-64, "overflow" might mean that two sep-
       arate  stack  pointers allocated within the region will overlap somewhere in the middle of
       the region.



       pthread_attr_init()  ,  pthread_attr_setdetachstate()  ,   pthread_attr_setstacksize()	,
       pthread_create()  ,  the  Base  Definitions  volume  of	IEEE Std 1003.1-2001, <limits.h>,

       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 orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003			 PTHREAD_ATTR_GETSTACK(P)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 12:28 AM.