
17.12
国際化
325
17.11.2
シグナル
OSはさまざまなシグナルをプロセスに送って異常なイベントを通知する。そのようなイ
ベントには、普通、不正メモリアクセス、タイマーアラームのようなハードウェア割り込み
などの深刻なエラーが含まれる。しかし、シグナルは、コンソールからユーザが起こしたり、
プログラムそのものが
raise()
関数呼び出しで起こすこともある。
プログラムは自分で特定シグナルにどう反応するか決めてよい。プログラムはシグナル
を無視するか、デフォルトのシグナルハンドラに任せるか、自分のシグナルハンドラをイン
ストールするか選ぶ。シグナルハンドラは、プログラムが指定された型のシグナルを受け
取ると自動的に実行される関数だ。
シグナルを扱う2つのC関数が、シグナル型を表すマクロとともにヘッダsignal.hで宣言
される。シグナル関数を表17-25に示す。
表17-25 シグナル関数
目的 関数
指定されたシグナル型に応答を設定する
signal()
呼び出し側プロセスにシグナルを送る
raise()
17.12
国際化
標準ライブラリは現地のカルチャー表記に対応できるCプログラムの開発をサポートす
る。例えば、プログラムはロケール特有文字集合や通貨情報の書式を使用できる。
プログラムはいずれも名前
"C"
*1
の国や言語特有情報を何も持たないデフォルトロケール
で開始する。実行時にプログラムはロケールを変更したり、現在のロケールについての情
報をクエリできる。ロケールを構成する情報はカテゴリ別に分けられ、 ...