SUS v2 (1997) によると、 http : //pubs.opengroup.org/onlinepubs/7908799/xsh/ucontext.h.htmlstack_t
で定義する必要があります。<signal.h>
型 sigset_t および stack_t は のように定義されています。
http://pubs.opengroup.org/onlinepubs/007908799/xsh/signal.h.html
ヘッダーは、少なくとも次のメンバーを含む構造体として stack_t 型を定義します。
void *ss_sp stack base or pointer
size_t ss_size stack size
int ss_flags flags
タイプは glibc ドキュメントにもリストされています: http://www.gnu.org/software/libc/manual/html_node/Signal-Stack.html
データ型: stack_t
この型はsigaltstack
関数で使用され、次のように説明されます。
sigaltstack は新しいインターフェースで、4.4 BSD から来ています。...
sigaltstack
また、 (バージョン 2015-07-23)の公式 Linux マニュアル ページには次のように記載されています。
glibc の機能テスト マクロ要件 ( feature_test_macros(7)を参照):
sigaltstack():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
POSIX.1-2001、POSIX.1-2009、SUSv2、SVr4 に準拠。
したがって、2.12 より新しい glibc を使用する場合は、いくつかのマクロを使用できるように定義する必要がありsigaltstack
ますstack_t
。glibc 2.10 以降では#define _GNU_SOURCE
、enable_BSD_SOURCE
と_POSIX_C_SOURCE = 200809L