[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:ソケットの解放
}}}
= ソケットの解放 = #SECTION07240000000000000000
ソケットに対する送受信を禁止するためには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 [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]