![]() |
![]() |
![]() |
![]() |
![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Set the size of the thread's guard area
#include <pthread.h>
int pthread_attr_setguardsize(
pthread_attr_t* attr,
size_t guardsize );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The pthread_attr_setguardsize() function sets the size of the thread's guard area in the attribute structure attr to guardsize.
If guardsize is 0, threads created with attr have no guard area; otherwise, a guard area of at least guardsize bytes is provided. You can get the default guardsize value by specifying _SC_PAGESIZE in a call to sysconf().
The guardsize attribute controls the size of the guard area for the thread's stack. This guard area helps protect against stack overflows; guardsize bytes of extra memory is allocated at the overflow end of the stack. If a thread overflows into this buffer, it receives a SIGSEGV signal.
The guardsize attribute is provided because:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Yes |
If you provide a stack (using attr's stackaddr attribute; see pthread_attr_setstackaddr()), the guardsize is ignored, and there's no stack overflow protection for that thread.
The guardsize argument is completely ignored when using a physical mode memory manager.
pthread_attr_getguardsize(), pthread_attr_init(), pthread_attr_setstackaddr(). sysconf()
![]() |
![]() |
![]() |
![]() |