shutdown(2) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | STANDARDS | HISTORY | NOTES | BUGS | SEE ALSO | COLOPHON

 shutdown(2)                System Calls Manual                shutdown(2) 

NAME         top

        shutdown - shut down part of a full-duplex connection 

LIBRARY         top

        Standard C library (libc, -lc) 

SYNOPSIS         top

        #include <sys/socket.h>         int shutdown(int sockfd, int how); 

DESCRIPTION         top

        The shutdown() call causes all or part of a full-duplex connection        on the socket associated with sockfd to be shut down.  If how is        SHUT_RD, further receptions will be disallowed.  If how is        SHUT_WR, further transmissions will be disallowed.  If how is        SHUT_RDWR, further receptions and transmissions will be        disallowed. 

RETURN VALUE         top

        On success, zero is returned.  On error, -1 is returned, and errno        is set to indicate the error. 

ERRORS         top

        EBADF  sockfd is not a valid file descriptor.         EINVAL An invalid value was specified in how (but see BUGS).         ENOTCONN               The specified socket is not connected.         ENOTSOCK               The file descriptor sockfd does not refer to a socket. 

STANDARDS         top

        POSIX.1-2008. 

HISTORY         top

        POSIX.1-2001, 4.4BSD (first appeared in 4.2BSD). 

NOTES         top

        The constants SHUT_RD, SHUT_WR, SHUT_RDWR have the value 0, 1, 2,        respectively, and are defined in <sys/socket.h> since        glibc-2.1.91. 

BUGS         top

        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. 

SEE ALSO         top

        close(2), connect(2), socket(2), socket(7) 

COLOPHON         top

        This page is part of the man-pages (Linux kernel and C library        user-space interface documentation) project.  Information about        the project can be found at         ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report        for this manual page, see        ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.        This page was obtained from the tarball man-pages-6.15.tar.gz        fetched from        ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on        2025-08-11.  If you discover any rendering problems in this HTML        version of the page, or you believe there is a better or more up-        to-date source for the page, or you have corrections or        improvements to the information in this COLOPHON (which is not        part of the original manual page), send a mail to        [email protected]  Linux man-pages 6.15            2025-05-17                    shutdown(2) 

Pages that refer to this page: close(2)io_uring_enter2(2)io_uring_enter(2)recv(2)send(2)socket(2)socketcall(2)syscalls(2)io_uring_prep_shutdown(3)sd_listen_fds(3)systemd.socket(5)signal-safety(7)sock_diag(7)socket(7)lsof(8)