[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:ソケットの作成
}}}
= ソケットの作成 = #SECTION07210000000000000000
新規ソケットの作成はsys_socket関数にて行う。引数で指定されたプロトコロルファミリーのタイプで、SS_UNCONNECTED状態のソケットを生成する。
sys_socket関数は、まずsock_create関数を呼び出す。socket構造体を確保(sock_alloc)した後、引数のプロトコルファミリー番号でnet_familiesテーブルを検索し、目的のプロトコルの初期化関数を呼び出し、ソケットを初期化する。各プロトコルの初期化関数中で、それぞれのプロトコル固有のソケット操作関数テーブル(struct proto_ops)の登録も行われる。また、必要があればsock構造体も確保(sk_alloc関数)初期化され登録される。
sock_create関数の処理が完了すると、file構造体を確保初期化し、ファイルとしてファイルディスクリプタテーブルに登録する(get_fd関数)。ファイル操作関数テーブルとしてはsocket_file_opsを登録する。
全ての処理が完了すると、先に「'''ソケットデータ形式'''」で説明したソケットデータ構造が出来上がる。
[[Embed(internal22-images:img81.gif)]]
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]