名 前
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/ に 書 か れ て い る 。