PTHREAD_ATTR_SETSTACKADDR(3) | Library Functions Manual | PTHREAD_ATTR_SETSTACKADDR(3)

# NAME

`pthread_attr_setstackaddr`, `pthread_attr_getstackaddr` — set and get stackaddr attribute

# SYNOPSIS

POSIX Threads Library (libpthread, -lpthread)
`#include <pthread.h>`

int
`pthread_attr_setstackaddr`(pthread_attr_t *attr, void *stackaddr);

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

# DESCRIPTION

The functions `pthread_attr_setstackaddr`() and `pthread_attr_getstackaddr`(), respectively, set and get 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 is at least `PTHREAD_STACK_MIN`.

On OpenBSD the stack must have been allocated using mmap(2) with the MAP_STACK attribute. Otherwise, use of the stack will cause SIGABRT faults. pthread_attr_setstack(3) can avoid this problem because it knows the size of the stack to remap.

# RETURN VALUES

Upon successful completion, `pthread_attr_setstackaddr`() and `pthread_attr_getstackaddr`() return a value of 0. Otherwise, an error number is 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 will not return an error code of [`EINTR`].

# SEE ALSO

pthread_attr_init(3), pthread_attr_setdetachstate(3), pthread_attr_setguardsize(3), pthread_attr_setstack(3), pthread_attr_setstacksize(3), pthread_create(3), pthreads(3)

# STANDARDS

`pthread_attr_setstackaddr`() and `pthread_attr_getstackaddr`() conform to ISO/IEC 9945-1 ANSI/IEEE (“POSIX”) Std 1003.1 Second Edition 1996-07-12.

June 7, 2025 | Debian