↑: [[Linuxプログラミングインタフェース]] - 新規の[[ソケット]]を作成する関数 - `int socket(int domain, int type, int protocol);` - 成功時には[[ファイルディスクリプタ]]を返す - エラー時には-1を返す - domainにはソケットの通信ドメインを指定する - typeにはソケットの種類を指定する - [[ストリームソケット]]の場合: `SOCK_STREAM` - [[データグラムソケット]]の場合: `SOCK_DGRAM` - [[Zk/ref/Linuxプログラミングインタフェース|Linuxプログラミングインタフェース]]ではprotocolは0を常に指定 - Linuxの2.6.27よりtypeに非標準フラグをOR演算で追加可能になった - `SOCK_CLOEXEC`は[[Zk/ref/ファイルディスクリプタ|ファイルディスクリプタ]]に[[close-on-exec]]フラグをセットできる - `SOCK_NONBLOCK`は[[Zk/ref/ファイルディスクリプタ|ファイルディスクリプタ]]のファイル情報に`O_NONBLOCK`をフラグをセットして、以降のI/Oをノンブロッキングに実行する - [[fcntl()]]の実行でも得られるけど作成時に指定すれば省略可能