属性オブジェクトの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を返します。エラーの時はエラーに応じた値を返します。
Stay hungry, Stay foolish. -- Steven Paul Jobs