日本語 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
SIGNAL(3) FreeBSD ライブラリ関数マニュアル SIGNAL(3) 名称 signal -- 単純化されたソフトウェアシグナル機能 ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <signal.h> void (*signal(int sig, void (*func)(int)))(int); or in FreeBSD's equivalent but easier to read typedef'd version: typedef void (*sig_t) (int); sig_t signal(int sig, sig_t func); 解説 この signal() 機能は、より一般的な sigaction(2) 機能への単純化されたイン タフェースです。 シグナルは、プロセスがそれ自体またはそれ自体のコピー (子) を操作できると 同様にそのドメイン外からのプロセスの操作を可能にします。2 つの一般的なタ イプのシグナルがあります。プロセスの終了を引き起こすものとそうではないも のです。プログラムの終了を引き起こすシグナルは、回復不可能なエラーの結果 かもしれないし、`割り込み' 文字を入力する端末のユーザの結果かもしれませ ん。シグナルは、バックグラウンドの間に、制御端末にアクセスしたいのでプロ セスが停止されるときに使用されます。(tty(4) を参照)。シグナルは、プロセス が停止された後再開されるとき、子プロセスのステータスが変化したとき、また は入力が制御端末で準備ができているとき状況に応じて生成されます。ほとんど のシグナルは、処置が行われない場合にそれらを受け取るプロセスの終了という 結果になります。いくつかのシグナルは代わりに、停止させられているためにそ れらを受け取るプロセスを引き起こすか、プロセスが別に要求をされていない場 合は単に廃棄されます。SIGKILL と SIGSTOP シグナルを除いて、signal() 関数 は、シグナルを捕捉するか、無視するか、または割り込みを生成できるようにし ます。これらのシグナルは、ファイル <signal.h> に定義されています: 番号 名前 デフォルトの動作 説明 1 SIGHUP プロセスを終了 端末行のハングアップ 2 SIGINT プロセスを終了 プログラムに割り込む 3 SIGQUIT コアイメージを作成 プログラムを終了 4 SIGILL コアイメージを作成 不正命令 5 SIGTRAP コアイメージを作成 トラップを追跡 6 SIGABRT コアイメージを作成 プログラムをアボート (以前は, SIGIOT) 7 SIGEMT コアイメージを作成 実行されたエミュレート命令 8 SIGFPE コアイメージを作成 浮動小数点例外 9 SIGKILL プロセスを終了 プログラムを kill 10 SIGBUS コアイメージを作成 バスエラー 11 SIGSEGV コアイメージを作成 セグメンテーション侵害 12 SIGSYS コアイメージを作成 呼び出された存在しないシステム コール 13 SIGPIPE プロセスを終了 読み込み側のないパイプに書き込み 14 SIGALRM プロセスを終了 時間切れのリアルタイムタイマ 15 SIGTERM プロセスを終了 ソフトウェア終了シグナル 16 SIGURG シグナルを廃棄 ソケット上に存在する緊急状態 17 SIGSTOP プロセスを停止 停止 (捕捉または無視できない) 18 SIGTSTP プロセスを停止 キーボードから生成されたシグナル を停止 19 SIGCONT シグナルを廃棄 停止の後の継続 20 SIGCHLD シグナルを廃棄 子プロセスの状態が変更された 21 SIGTTIN プロセスを停止 制御端末から試みられたバックグラ ウンドの読み込み 22 SIGTTOU プロセスを停止 制御端末に試みられたバックグラウ ンドの書き込み 23 SIGIO シグナルを廃棄 記述子で I/O が可能 (fcntl(2) を 参照) 24 SIGXCPU プロセスを終了 超過した CPU 時間の制限 (setrlimit(2) を参照) 25 SIGXFSZ プロセスを終了 超過したファイルサイズの制限 (setrlimit(2) を参照) 26 SIGVTALRM プロセスを終了 仮想時間のアラーム (setitimer(2) を参照) 27 SIGPROF プロセスを終了 プロファイルのタイマのアラーム (setitimer(2) を参照) 28 SIGWINCH シグナルを廃棄 ウィンドウサイズの変更 29 SIGINFO シグナルを廃棄 キーボードから状態要求 30 SIGUSR1 プロセスを終了 ユーザ定義シグナル 1 31 SIGUSR2 プロセスを終了 ユーザ定義シグナル 2 32 SIGTHR プロセスを終了 スレッド割り込み 33 SIGLIBRT プロセスを終了 リアルタイムライブラリ割り込み sig 引数は、どのシグナルが受け取られたかを指定します。func 手続きは、ユー ザがシグナルを受け取った時の処置を選択できるようにします。上記のリストの ように発生するシグナルのデフォルト処置を設定するために、func は、SIG_DFL であるべきです。SIG_DFL は、デフォルトの動作をリセットします。シグナルを 無視するために、func は、SIG_IGN であるべきです。これによって、シグナルの 後続するインスタンスは、無視され、保留中のインスタンスは、破棄されます。 SIG_IGN が使用されないなら、さらなるシグナルの発生は、自動的にブロックさ れ、func が呼び出されます。 操作されるシグナルは、関数が返るとき、ブロックが取り除かれ、プロセスは、 シグナルが発生したとき、それが中断したところから継続します。以前のシグナ ルの機能と異なり、ハンドラ func() は、シグナルが配信された後にインストー ルされ続けます。 システムコールによっては、呼び出しが実行している間にシグナルが補足され、 呼び出しが時期尚早に終了するなら、呼び出しは、自動的に再開されます。 signal(3) でインストールされたあらゆるハンドラは、あらゆる再開可能なシス テムコールが、シグナルの受信で返らないことを意味して、SA_RESTART フラグ設 定があります。影響を受けるシステムコールは、通信チャネルまたは低速度のデ バイスでの read(2), write(2), sendto(2), recvfrom(2), sendmsg(2) と recvmsg(2) および ioctl(2) または wait(2) の間を含んでいます。しかしなが ら、既にコミット (委託) された呼び出しは、再開されませんが、代わりに、部 分的な成功 (例えば、短い読み込みカウント) を返します。これらのセマンティ クスは、siginterrupt(3) ととともに変化するかもしれません。 インストールされたシグナルハンドラがあるプロセスがフォークしたとき、子プ ロセスは、シグナルを継承します。捕捉されたすべてのシグナルは、execve(2) 関数の呼び出しによって、それらのデフォルトの処置をリセットされます。無視 されたシグナルは、無視されたままになります。 プロセスがシグナル SIGCHLD のための動作として明白に SIG_IGN を指定する と、呼び出しプロセスの子供が終了するとき、システムは、ゾンビプロセスを作 成しません。結果として、システムは子プロセスから終了 (exit) ステータスを 捨てます。呼び出しプロセスが wait(2) または同等物への呼び出しを発行する と、呼び出しプロセスの子供がすべて終了するまでブロックし、errno を ECHILD に設定して、-1 の値を返します。 シグナルハンドラで使用するために安全であると考えられる関数のリストに関し ては、sigaction(2) を参照してください。 戻り値 呼び出しが成功すると、前の処置が返されます。そうでなければ、SIG_ERR が返 され、グローバル変数 errno にエラーを示す値が設定されます。 エラー signal() 関数は、失敗し、次のうちの 1 つが発生するなら、処置は、行われま せん: [EINVAL] sig 引数が有効なシグナル番号ではありません。 [EINVAL] SIGKILL または SIGSTOP のためのハンドラを無視するまた は供給する試みが行われます。 関連項目 kill(1), kill(2), ptrace(2), sigaction(2), sigaltstack(2), sigprocmask(2), sigsuspend(2), wait(2), fpsetmask(3), setjmp(3), siginterrupt(3), tty(4) 歴史 signal() 関数は、Version 4 AT&T UNIX で登場しました。現在 signal 機能は、 4.0BSD で登場しました。SIGCHLD を無視するために子供のゾンビの作成を避ける オプションは、FreeBSD 5.0 で登場しました。 FreeBSD 11.2 December 1, 2017 FreeBSD 11.2