PTHREAD_ATTR_SETSTACK(3) | Linux Programmer's Manual | PTHREAD_ATTR_SETSTACK(3) |
名前
pthread_attr_setstack, pthread_attr_getstack -スレッド属性オブジェクトのスタック属性の設定/取得を行う書式
#include <pthread.h>
int pthread_attr_setstack(pthread_attr_t *attr,
void *stackaddr, size_t stacksize);
int pthread_attr_getstack(pthread_attr_t *attr,
void **stackaddr, size_t *stacksize);
-pthread でコンパイルしてリンクする。
glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
pthread_attr_getstack(), pthread_attr_setstack():
_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
説明
pthread_attr_setstack() 関数は、 attr が参照するスレッド属性オブジェクトのスタックアドレス属性とスタックサイズ属性をそれぞれ stackaddr と stacksize で指定された値に設定する。これらの属性により、スレッド属性オブジェクト attr を使って作成されるスレッドが使用すべきスタックの位置とサイズが指定される。返り値
成功すると、これらの関数は 0 を返す。エラーの場合、0 以外のエラー番号を返す。エラー
pthread_attr_setstack() は以下のエラーで失敗する場合がある。- EINVAL
- stacksize が PTHREAD_STACK_MIN (16384) よりも小さい。システムによっては、 stackaddr か stackaddr + stacksize のアライメントが適切でない場合にもこのエラーが発生する。
POSIX.1-2001 ではエラー EACCES も規定されており、このエラーは stackaddr と stacksize で規定されるスタック領域に呼び出し側から読み書き両方のアクセスができない状況を表す。
バージョン
これらの関数は glibc バージョン 2.2 以降で提供されている。準拠
POSIX.1-2001.注意
これらの関数は、スレッドのスタックが特定の場所に配置されることを保証しなければならないアプリケーションのために提供されている。ほとんどのアプリケーションでは、このようなことは必要なく、これらの関数を使うのは避けるべきである。 (アプリケーションが単にスタックサイズだけをデフォルトの値から変更する必要がある場合には pthread_attr_setstacksize(3) を使うこと)例
pthread_attr_init(3) を参照。関連項目
mmap(2), mprotect(2), posix_memalign(3), pthread_attr_init(3), pthread_attr_setguardsize(3), pthread_attr_setstackaddr(3), pthread_attr_setstacksize(3), pthread_create(3), pthreads(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2008-10-24 | Linux |