ん〜、こういうのは自分の中で納得できるかどうかなので、 うまく説明するのは僕には難しいなぁ。 > あと非同期ってどういう意味なんでしょう。 プログラム側から「いつそのアクションが起きるか」を 知ることができないということです。たとえば、マウスの クリックがいつ発生するだとか、シグナルがいつ飛んで くるかを、プログラムの側から予想することはできません。 > Tkやシグナルハンドラのように、そのアクションをキャッチする機構が > システムによって用意されているものだけをコールバックと呼ぶんで > しょうか? そうだと思います。というより、システム (OS) の手助けを 借りなければ、非同期なアクションに応答することはできません。 signal は非同期でやってきますので、シグナルハンドラという 機構が OS にあります。 ボタンの押下は、結局は X Window System のイベントとして socket 経由でデータが送られてきます。これは select で データが送られてきているかどうかを調べます (たぶん)。 結局どちらも OS の手助けを借りている (=システムコール を使う) わけです。 |