日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SIGALTSTACK(2) FreeBSD システムコールマニュアル SIGALTSTACK(2) 名称 sigaltstack -- シグナルスタックコンテキストを設定および取得する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <signal.h> typedef struct { char *ss_sp; size_t ss_size; int ss_flags; } stack_t; int sigaltstack(const stack_t * restrict ss, stack_t * restrict oss); 解説 sigaltstack() システムコールによって、シグナルが現在のスレッドのために処 理される代替のスタックを定義することができます。ss が 0 でないなら、それ は、シグナルを配信するシグナルスタックへのポインタとサイズを指定します。 シグナルのアクションが、(sigaction(2) システムコールによって指定される) シグナルのスタックで、そのハンドラが実行するべきであることが示されると き、システムは、スレッドがそのスタックで現在実行されているかどうかチェッ クします。スレッドがシグナルスタックで現在実行されていないなら、システム は、シグナルのハンドラの実行の存続期間のためのシグナルスタックへのスイッ チを手配します。 アクティブなスタックは、修正することができません。 SS_DISABLE が ss_flags に設定されるなら、ss_sp と ss_size は、無視され、 シグナルスタックは、無効にされます。無効にされたスタックによって、すべて のシグナルは、通常のユーザスタックで取られます。スタックが後に再び有効に されるなら、代替のスタックで処理されるように指定されたすべてのシグナル は、そうするように再開します。 oss が 0 でないなら、現在のシグナルスタックの状態が返されます。ss_flags フィールドは、スレッドが現在シグナルスタックであるなら、値 SS_ONSTACK を 含み、シグナルスタックが現在無効にされているなら、SS_DISABLE を含みます。 注 値 SIGSTKSZ は、代替のスタック領域を割り付けるとき、通常の場合をカバーす るために使用されるバイト/文字の数となるように定義されます。次のコードの破 片は、一般的に、代替のスタックを割り付けるために使用されます。 if ((sigstk.ss_sp = malloc(SIGSTKSZ)) == NULL) /* error return */ sigstk.ss_size = SIGSTKSZ; sigstk.ss_flags = 0; if (sigaltstack(&sigstk, NULL) < 0) perror("sigaltstack"); 代わりのアプローチは、デフォルトサイズ以外のスタック空間の特有の量を必要 とするシグナルハンドラでプログラムのために提供されます。値 MINSIGSTKSZ は、代替のスタック機能を実装するオペレーティングシステムによって必要とさ れるバイト/文字の数となるように定義されます。代替のスタックサイズの計算 で、プログラムは、オペレーティングシステムのオーバヘッドを考慮するため に、MINSIGSTKSZ をそれらのスタック要件に追加するべきです。 シグナルスタックは、スタック成長と整列の要件の方向のために自動的に調整さ れます。シグナルスタックは、ハードウェアによって保護さるかどうか分から ず、通常のスタックで行われるように自動的に ``成長'' されません。スタック のオーバフローと、この空間が保護されないなら、予測不可能な結果が起こるか もしれません。 戻り値 関数 sigaltstack() は、処理が成功すると値 0 を返します。そうでない場合、 値 -1 が返され、グローバル変数 errno にエラーを示す値が設定されます。 エラー sigaltstack() システムコールは、失敗し、シグナルスタックのコンテキスト は、次の 1 つが起こるなら、変更されないままとなります。 [EFAULT] ss または oss のいずれかが、プロセスアドレス空間の有効 な部分ではないメモリを指しています。 [EPERM] アクティブなスタックを修正するための試みが行われまし た。 [EINVAL] ss_flags フィールドが、無効でした。 [ENOMEM] 代替のスタック領域のサイズが、MINSIGSTKSZ 以下です。 関連項目 sigaction(2), setjmp(3) 歴史 sigaltstack() の祖先の sigstack() システムコールは、4.2BSD で登場しまし た。 FreeBSD 11.2 May 6, 2010 FreeBSD 11.2