线程属性
pthread_attr_t
pthread_attr_init
函数原型
int pthread_attr_init(pthread_attr_t *attr);
pthread_attr_destroy
函数原型
int pthread_attr_destroy(pthread_attr_t *attr);
获取线程属性
pthread_getattr_np
函数原型
int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr);
线程栈
pthread_attr_getstack
函数原型
int pthread_attr_getstack(const pthread_attr_t *attr, void **stackaddr, size_t *stacksize);
pthread_attr_setstack
函数原型
int pthread_attr_setstack(pthread_attr_t *attr, void *stackaddr, size_t stacksize);
线程栈大小
pthread_attr_getstacksize
函数原型
int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize);
pthread_attr_setstacksize
函数原型
int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
线程栈地址
pthread_attr_getstackaddr
函数原型
int pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr);
pthread_attr_setstackaddr
函数原型
int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);
线程栈保护区域大小
pthread_attr_getguardsize
函数原型
int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);
pthread_attr_setguardsize
函数原型
int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
创建线程时指定线程属性
#include<stdio.h> #include<pthread.h> void* start_routine(void *arg) { char *name = (char *) (arg); printf("thread %s called.\n", name); return NULL; } int main() { pthread_t pthread; pthread_attr_t attr; if (pthread_attr_init(&attr)) { return 1; } pthread_create(&pthread, &attr, start_routine, "#1"); pthread_attr_destroy(&attr); return 0; }