Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
shutdown - 全二重接続の一部を閉じる
書式
#include <sys/socket.h> int shutdown(int sockfd, int how);
説明
shutdown() は、 sockfd に関連づけられているソケットによる全二重接続 (full-duplex connection) の一部または全てを閉じる。 how が SHUT_RD ならば、それ以降の受信を禁止する。 how が SHUT_WR ならば、それ以降の送信を禁止する。 how が SHUT_RDWR ならば、それ以降の送受 信を禁止する。
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
エラー
EBADF sockfd が有効なディスクリプターでない。 EINVAL how に無効な値が指定された (バグが参照)。 ENOTCONN 指定されたソケットは接続されていない。 ENOTSOCK sockfd がソケットでなくファイルである。
準拠
POSIX.1-2001, 4.4BSD (shutdown() 関数コールは 4.2BSD で初めて登場した)。
注意
SHUT_RD, SHUT_WR, SHUT_RDWR の各定数 (それぞれ 0, 1, 2 の値を持つ) は glibc-2.1.91 以降、 <sys/socket.h> で定義されている。
バグ
現在の実装では how の妥当性チェックはドメイン固有のコードの中で行われているが、 すべてのド メインでこれらのチェックが行われている訳ではない。 中でも注意すべきは、 UNIX ドメインソ ケットでは無効な値は単に無視される点である。 これは将来変更されるかもしれない。
関連項目
connect(2), socket(2), socket(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。