↑: [[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()]]の実行でも得られるけど作成時に指定すれば省略可能