Manpages

名 前

shutdown − 全 二 重 接 続 の 一 部 を 閉 じ る

書 式

#include <sys/socket.h>

int shutdown(int sockfd, int how);

説 明

shutdown() は 、 sockfd に 関 連 づ け ら れ て い る ソ ケ ッ ト に よ る 全 二 重 接 続 (full−duplex connection) の 一 部 ま た は 全 て を 閉 じ る 。 howSHUT_RD な ら ば 、 そ れ 以 降 の 受 信 を 禁 止 す る 。 howSHUT_WR な ら ば 、 そ れ 以 降 の 送 信 を 禁 止 す る 。 howSHUT_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/ に 書 か れ て い る 。