Man Linux: Main Page and Category List

NAME

       pthread_attr_getstackaddr,  pthread_attr_setstackaddr - get and set the
       stackaddr attribute

SYNOPSIS

       #include <pthread.h>

       int pthread_attr_getstackaddr(const pthread_attr_t *restrict attr,
              void **restrict stackaddr);
       int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);

DESCRIPTION

       The   pthread_attr_getstackaddr()    and    pthread_attr_setstackaddr()
       functions,   respectively,  shall  get  and  set  the  thread  creation
       stackaddr attribute in the attr object.

       The stackaddr attribute specifies the location of storage  to  be  used
       for  the  created  thread’s  stack. The size of the storage shall be at
       least {PTHREAD_STACK_MIN}.

RETURN VALUE

       Upon    successful    completion,    pthread_attr_getstackaddr()    and
       pthread_attr_setstackaddr()  shall  return  a value of 0; otherwise, an
       error number shall be returned to indicate the error.

       The pthread_attr_getstackaddr() function stores the stackaddr attribute
       value in stackaddr if successful.

ERRORS

       No errors are defined.

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

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The   specification   of   the  stackaddr  attribute  presents  several
       ambiguities that make portable use of these interfaces impossible.  The
       description  of  the  single  address  parameter  as a "stack" does not
       specify a particular relationship between the address and  the  "stack"
       implied  by  that address. For example, the address may be taken as the
       low memory address of a buffer intended 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 new thread. 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
       the stack grows "down" from high memory to low, interpretation  of  the
       address  as  the  "low  memory" address requires a determination of the
       intended size of the stack. IEEE Std 1003.1-2001 has introduced the new
       interfaces   pthread_attr_setstack()   and  pthread_attr_getstack()  to
       resolve these ambiguities.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       pthread_attr_destroy()      ,      pthread_attr_getdetachstate()      ,
       pthread_attr_getstack()       ,      pthread_attr_getstacksize()      ,
       pthread_attr_setstack()  ,  pthread_create()  ,  the  Base  Definitions
       volume of IEEE Std 1003.1-2001, <limits.h>, <pthread.h>

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 .