PTHREAD_ATTR_SETGUARDSIZE(3) | Library Functions Manual | PTHREAD_ATTR_SETGUARDSIZE(3)

# NAME

`pthread_attr_setguardsize`, `pthread_attr_getguardsize` — set and get guardsize attribute

# SYNOPSIS

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

int
`pthread_attr_setguardsize`(pthread_attr_t *attr, size_t guardsize);

int
`pthread_attr_getguardsize`(const pthread_attr_t *attr, size_t *guardsize);

# DESCRIPTION

The functions `pthread_attr_setguardsize`() and `pthread_attr_getguardsize`(), respectively, set and get the thread creation guardsize attribute in the attr object. If guardsize is zero, a guard area shall not be provided for threads created with attr. If guardsize is greater than zero, a guard area of at least size guardsize bytes shall be provided for each thread created with attr.

The guardsize attribute controls the size of the guard area for the created thread's stack. The guardsize attribute provides protection against overflow of the stack pointer. If a thread's stack is created with guard protection, the implementation allocates extra memory at the overflow end of the stack as a buffer against stack overflow of the stack pointer. If an application overflows into this buffer, an error shall result (possibly in a SIGSEGV signal being delivered to the thread).

# RETURN VALUES

Upon successful completion, `pthread_attr_setguardsize`() and `pthread_attr_getguardsize`() return a value of 0. Otherwise, an error number is returned to indicate the error.

The `pthread_attr_getguardsize`() function stores the guardsize attribute value in guardsize 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_setstack(3), pthread_attr_setstackaddr(3), pthread_attr_setstacksize(3), pthread_create(3), pthreads(3)

# STANDARDS

`pthread_attr_setguardsize`() and `pthread_attr_getguardsize`() conform to ISO/IEC 9945-1 ANSI/IEEE (“POSIX”) Std 1003.1, 2004 Edition.

June 7, 2025 | Debian