]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/pthread_attr_setstacksize.3
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir...
[thirdparty/man-pages.git] / man3 / pthread_attr_setstacksize.3
CommitLineData
5a8b01e1
MK
1.\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
2.\" <mtk.manpages@gmail.com>
3.\"
93015253 4.\" %%%LICENSE_START(VERBATIM)
5a8b01e1
MK
5.\" Permission is granted to make and distribute verbatim copies of this
6.\" manual provided the copyright notice and this permission notice are
7.\" preserved on all copies.
8.\"
9.\" Permission is granted to copy and distribute modified versions of this
10.\" manual under the conditions for verbatim copying, provided that the
11.\" entire resulting derived work is distributed under the terms of a
12.\" permission notice identical to this one.
13.\"
14.\" Since the Linux kernel and libraries are constantly changing, this
15.\" manual page may be incorrect or out-of-date. The author(s) assume no
16.\" responsibility for errors or omissions, or for damages resulting from
17.\" the use of the information contained herein. The author(s) may not
18.\" have taken the same level of care in the production of this manual,
19.\" which is licensed free of charge, as they might when working
20.\" professionally.
21.\"
22.\" Formatted or processed versions of this manual, if unaccompanied by
23.\" the source, must acknowledge the copyright and authors of this work.
4b72fb64 24.\" %%%LICENSE_END
5a8b01e1 25.\"
22cb459d 26.TH PTHREAD_ATTR_SETSTACKSIZE 3 2012-03-15 "Linux" "Linux Programmer's Manual"
5a8b01e1
MK
27.SH NAME
28pthread_attr_setstacksize, pthread_attr_getstacksize \- set/get stack size
29attribute in thread attributes object
30.SH SYNOPSIS
31.nf
32.B #include <pthread.h>
33
34.BI "int pthread_attr_setstacksize(pthread_attr_t *" attr \
35", size_t " stacksize );
36.BI "int pthread_attr_getstacksize(pthread_attr_t *" attr \
37", size_t *" stacksize );
38.sp
39Compile and link with \fI\-pthread\fP.
6030f2d8 40.fi
5a8b01e1
MK
41.SH DESCRIPTION
42The
630a1725 43.BR pthread_attr_setstacksize ()
5a8b01e1
MK
44function sets the stack size attribute of the
45thread attributes object referred to by
46.I attr
47to the value specified in
48.IR stacksize .
49
50The stack size attribute determines the minimum size (in bytes) that
51will be allocated for threads created using the thread attributes object
52.IR attr .
53
54The
55.BR pthread_attr_getstacksize ()
56function returns the stack size attribute of the
57thread attributes object referred to by
58.I attr
59in the buffer pointed to by
60.IR stacksize .
61.SH RETURN VALUE
62On success, these functions return 0;
c7094399 63on error, they return a nonzero error number.
5a8b01e1
MK
64.SH ERRORS
65.BR pthread_attr_setstacksize ()
66can fail with the following error:
67.TP
68.B EINVAL
69The stack size is less than
70.BR PTHREAD_STACK_MIN
71(16384) bytes.
c2befb6a
MK
72.PP
73On some systems,
74.\" e.g., MacOS
75.BR pthread_attr_setstacksize ()
76can fail with the error
77.B EINVAL
78if
79.I stacksize
80is not a multiple of the system page size.
5a8b01e1
MK
81.SH VERSIONS
82These functions are provided by glibc since version 2.1.
83.SH CONFORMING TO
84POSIX.1-2001.
5a8b01e1
MK
85.SH NOTES
86For details on the default stack size of new threads, see
87.BR pthread_create (3).
88
89A thread's stack size is fixed at the time of thread creation.
90Only the main thread can dynamically grow its stack.
91
92The
93.BR pthread_attr_setstack (3)
94function allows an application to set both the size and location
95of a caller-allocated stack that is to be used by a thread.
96.SH BUGS
97As at glibc 2.8,
98if the specified
99.I stacksize
100is not a multiple of
101.BR STACK_ALIGN
102(16 bytes on most architectures), it may be rounded
5fab2e7c 103.IR downward ,
5a8b01e1
MK
104in violation of POSIX.1-2001, which says that the allocated stack will
105be at least
106.I stacksize
107bytes.
22cb459d
MK
108.SH EXAMPLE
109See
110.BR pthread_create (3).
5a8b01e1
MK
111.SH SEE ALSO
112.BR getrlimit (2),
113.BR pthread_attr_init (3),
114.BR pthread_attr_setguardsize (3),
115.BR pthread_attr_setstack (3),
116.BR pthread_create (3),
117.BR pthreads (7)