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, POSIX.1-2008, 4.4BSD (
shutdown() は 4.2BSD
で初めて登場した)。
SHUT_RD,
SHUT_WR,
SHUT_RDWR
の各定数 (それぞれ 0, 1, 2
の値を持つ) は glibc-2.1.91
以降、
<sys/socket.h>
で定義されている。
Checks for the validity of
how are done in domain-specific code, and
before Linux 3.7 not all domains performed these checks. Most notably, UNIX
domain sockets simply ignored invalid values. This problem was fixed for UNIX
domain sockets in Linux 3.7.
close(2),
connect(2),
socket(2),
socket(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。