JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... ach する) ことができるからである。 * スタックサイズ。 スレッドの実装によって適切な境界に揃えられる可能があるためである。 * guard size. スレッドの実装によりページサイズの倍数に切り上げられたり、 アプリケーションが自分でスタックを割り当てる場合には無視さ ... の使用例を示したものである。 このプログラムは、スレッドを作成し、それから pthread_getattr_np () を使ってそのスレッドの属性 guard size、 スタックアドレス、スタックサイズを取得し表示する。 コマンドライン引数での指定で、スレッドを作成する際に 上記の属性に ... ム上で実行)。 $ ulimit -s # No stack limit ==> default stack size is 2 MB unlimited $ ./a.out Attributes of created thread: Guard size = 4096 bytes Stack address = 0x40196000 (EOS = 0x40397000) Stack size = 0x201000 (2101248) bytes 次の実行例では、guar ... ... pthread.h > int pthread_attr_setguardsize(pthread_attr_t * attr , size_t guardsize ); int pthread_attr_getguardsize(const pthread_attr_t * attr , size_t * guard ... size ); -pthread でコンパイルしてリンクする。 説明 pthread_attr_setguardsize () 関数は、 attr が参照するスレッド属性オブジェクトの guard size 属性を guardsize で指定された値に設定する。 guardsize ... が 0 より大きい場合、 attr を使って新しく作成された各スレッドに対して、 システムはスレッドのスタックの末尾に少なくとも guardsize バイトの 追加領域を割り当てる。この追加領域はスタックに対するガード領域として 機能する (ただし「バグ」の節も参照)。 gu ... ... pthread.h > int pthread_attr_setguardsize(pthread_attr_t * attr , size_t guardsize ); int pthread_attr_getguardsize(const pthread_attr_t * attr , size_t * guard ... size ); -pthread でコンパイルしてリンクする。 説明 pthread_attr_setguardsize () 関数は、 attr が参照するスレッド属性オブジェクトの guard size 属性を guardsize で指定された値に設定する。 guardsize ... が 0 より大きい場合、 attr を使って新しく作成された各スレッドに対して、 システムはスレッドのスタックの末尾に少なくとも guardsize バイトの 追加領域を割り当てる。この追加領域はスタックに対するガード領域として 機能する (ただし「バグ」の節も参照)。 gu ... ... e = PTHREAD_SCOPE_SYSTEM Inherit scheduler = PTHREAD_INHERIT_SCHED Scheduling policy = SCHED_OTHER Scheduling priority = 0 Guard size = 4096 bytes Stack address = 0x40196000 Stack size = 0x201000 bytes コマンドライン引数でスタックサイズが与えられた場合 ... = PTHREAD_SCOPE_SYSTEM Inherit scheduler = PTHREAD_EXPLICIT_SCHED Scheduling policy = SCHED_OTHER Scheduling priority = 0 Guard size = 0 bytes Stack address = 0x40197000 Stack size = 0x3000000 bytes プログラムのソース #define _GNU_SOURCE /* To get pt ... n(s, "pthread_attr_getschedparam"); printf("%sScheduling priority = %d\n", prefix, sp.sched_priority); s = pthread_attr_getguardsize(attr, &v); if (s != 0) handle_error_en(s, "pthread_attr_getguardsize"); printf("%sGuard size = %zu bytes\n", prefix, v ... ... e = PTHREAD_SCOPE_SYSTEM Inherit scheduler = PTHREAD_INHERIT_SCHED Scheduling policy = SCHED_OTHER Scheduling priority = 0 Guard size = 4096 bytes Stack address = 0x40196000 Stack size = 0x201000 bytes コマンドライン引数でスタックサイズが与えられた場合 ... = PTHREAD_SCOPE_SYSTEM Inherit scheduler = PTHREAD_EXPLICIT_SCHED Scheduling policy = SCHED_OTHER Scheduling priority = 0 Guard size = 0 bytes Stack address = 0x40197000 Stack size = 0x3000000 bytes プログラムのソース #define _GNU_SOURCE /* To get pt ... n(s, "pthread_attr_getschedparam"); printf("%sScheduling priority = %d\n", prefix, sp.sched_priority); s = pthread_attr_getguardsize(attr, &v); if (s != 0) handle_error_en(s, "pthread_attr_getguardsize"); printf("%sGuard size = %zu bytes\n", prefix, v ... ... アプリケーションが pthread_attr_setstack () を利用する際には、 スタックの割り当てに責任を持つ必要がある。 pthread_attr_setguardsize (3) を使って設定された guard size の値は無視される。 必要と思われる場合は、アプリケーションが責任を持ってガード領域 (読 ... 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) この文書について こ ... ... アプリケーションが pthread_attr_setstack () を利用する際には、 スタックの割り当てに責任を持つ必要がある。 pthread_attr_setguardsize (3) を使って設定された guard size の値は無視される。 必要と思われる場合は、アプリケーションが責任を持ってガード領域 (読 ... 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) この文書について こ ... ... リティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID されたバイナリでは LD_ORIGIN_PATH は無視される。 LD_POINTER_GUARD (glibc 2.4 以降) 0 に設定すると、ポインター保護 (pointer guarding) が無効になる。 それ以外の値の場合はポインター保護が有効 ... ... リティ上の理由から、glibc 2.3.4 以降、 set-user-ID/set-group-ID されたバイナリでは LD_ORIGIN_PATH は無視される。 LD_POINTER_GUARD (glibc 2.4 以降) 0 に設定すると、ポインター保護 (pointer guarding) が無効になる。 それ以外の値の場合はポインター保護が有効 ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。