パスワードを忘れた? アカウント作成
451958 journal

Silphireの日記: pthread日記(25) - pthread_attr_setguardsize()

日記 by Silphire

属性オブジェクトのguardsize属性をセットします。

int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);

pthread_attr_setguardsize()は、attrが参照する属性オブジェクトのguardsize属性をguardsizeが示す値に設定します。guardsizeが0の時は、スタックのガードエリアは無くなります。guardsizeが正の値の時は、attrを使ってスレッドを新規に作成する時、少なくとも指定されたguardsizeの値だけのガードエリアを作るようにします。

デフォルトのguardsize属性の値はPAGESIZEです。PAGESIZEはpthreadの実装に依存します。

stackaddr属性がセットされた場合、guardsize属性は無視され、ガードエリアも作成されません。その時は、プログラム側でスタックのオーバーフローを管理する必要があります。

guardsize属性は、作成されたスレッドのスタックのガードエリアを制御する属性です。guardsize属性は、スタックポインタのオーバーフローを保護する機構を提供します。guardsize属性が指定されてスレッドが作成された時、そのスレッドのスタックはguardsize属性に指定された分だけ大きくなります。もしプログラムがその領域をアクセスした時は、一般にそのスレッドに対してSYSSEGVを発生させます。

pthread_attr_setguardsize()が成功した時には0を返します。エラーの時はエラーに応じた値を返します。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...