Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
ソケットに対する送受信を禁止するためにはshutdownシステムコールが利用される。システムコールの実体はsys_shutdown関数である。sys_shutdown関数は、ソケット操作関数テーブル(struct proto_ops)を経由し、プロトコル固有のshutdown関数を呼び出すだけである。
ソケットに対しcloseシステムコールを発行すると、ファイル操作関数テーブルsocket_file_opsを通して、sock_close関数が呼び出される。sock_close関数では、まず非同期I/OのためのSIGIO発生要求をキャンセル(sock_fasync関数)し、その後ソケット操作関数テーブルを経由し、プロトコル固有のrelease関数を呼び出し、プロトコル固有の終了処理を行う。プロトコル固有の終了処理終了後、ソケットの解放を行う(iput関数)。
捕捉 TCPなどではsocket自体は解放されるが、内部的にはしばらくコネクション状態は保持される。
(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:45:37, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー