---
name: "shutdown"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/shutdown/2"
---

# shutdown(2)

shut down part of a full-duplex connection

## NAME

**shutdown** – shut down part of a full-duplex connection

## SYNOPSIS

**#include \<sys/socket.h\>**

*int*\

**shutdown**(*int socket*, *int how*);

## DESCRIPTION

The **shutdown**() call causes all or part of a full-duplex connection on the socket associated with *socket* to be shut down. If *how* is  SHUT\_RD, further receives will be disallowed. If *how* is  SHUT\_WR, further sends will be disallowed. If *how* is  SHUT\_RDWR, further sends and receives will be disallowed.

## RETURN VALUES

The **shutdown()** function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

## ERRORS

The call succeeds unless:

- \[EBADF\]

  *Socket* is not a valid descriptor.

- \[EINVAL\]

  The *how* argument is invalid.

- \[ENOTCONN\]

  The specified socket is not connected.

- \[ENOTSOCK\]

  *Socket* is a file, not a socket.

## SEE ALSO

[connect(2)](/connect/2.md), [connectx(2)](/connectx/2.md), [disconnectx(2)](/disconnectx/2.md), [socket(2)](/socket/2.md)

## HISTORY

The **shutdown**() function call appeared in 4.2BSD.
