*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> shutdown (2)              


 shutdown(2)                                                     shutdown(2)

 NAME    [Toc]    [Back]
      shutdown - shut down a socket

 SYNOPSIS    [Toc]    [Back]
      #include <sys/socket.h>

      int shutdown(int s, int how);

 DESCRIPTION    [Toc]    [Back]
      The shutdown() system call is used to shut down a socket.  In the case
      of a full-duplex connection, shutdown() can be used to either
      partially or fully shut down the socket, depending upon the value of

           how                 Interpretation
           SHUT_RD or 0        Further receives are disallowed
           SHUT_WR or 1        Further sends are disallowed
           SHUT_RDWR or 2      Further sends and receives are disallowed

      The s parameter is a socket descriptor for the socket to be shut down.

      Once the socket has been shut down for receives, all further recv()
      calls return an end-of-file condition.  A socket that has been shut
      down for sending causes further send() calls to return an [EPIPE]
      error and send the SIGPIPE signal.  After a socket has been fully shut
      down, operations other than recv() and send() return appropriate
      errors, and the only other thing that can be done to the socket is a

      Multiple shutdowns on a connected socket and shutdowns on a socket
      that is not connected may not return errors.

      A shutdown() on a connectionless socket, such as SOCK_DGRAM, only
      marks the socket as unable to do further send() or recv() calls,
      depending upon the value of how.  Once this type of socket has been
      disabled for both sending and receiving data, it becomes fully shut
      down.  For SOCK_STREAM sockets, if how is 1 or 2, the connection
      begins to be closed gracefully in addition to the normal actions.
      However, the shutdown() call does not wait for the completion of the
      graceful disconnection.  The disconnection is complete when both sides
      of the connection have done a shutdown() with how equal to 1 or 2.
      Once the connection has been completely terminated, the socket becomes
      fully shut down.  The SO_LINGER option (see socket(2)) does not have
      any meaning for the shutdown() call, but does for the close() call.
      For more information on how the close() call interacts with sockets,
      see socket(2).

      If a shutdown() is performed on a SOCK_STREAM socket that has a
      listen() pending on it, that socket becomes fully shut down when how =

 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003

 shutdown(2)                                                     shutdown(2)

    AF_CCITT only:
      The how parameter behaves differently if the socket is of the AF_CCITT
      address family.  If how is set to 0 the specified socket can no longer
      receive data.  The SVC is not cleared and remains intact.  However, if
      data is subsequently received on the SVC, it is cleared.  The
      connection is not completely down until either side executes a close()
      or shutdown() with how set to 1 or 2.

      If how is set to 1 or 2, the SVC can no longer send or receive data
      and the SVC is cleared.  The socket's resources are maintained so that
      data arriving prior to the shutdown() call can still be read.

 RETURN VALUE    [Toc]    [Back]
      Upon successful completion, shutdown() returns 0; otherwise it returns
      -1 and errno is set to indicate the error.

 ERRORS    [Toc]    [Back]
      shutdown() fails if any of the following conditions are encountered:

      [EBADF]               s is not a valid file descriptor.

      [ENOPROTOOPT]         The remote system or an intermediate system in
                            the communications path does not support a
                            protocol option sent by the local system.  This
                            option may have been set using a getsockopt or
                            setsockopt() call, or set as a system parameter.

      [ENOTSOCK]            s is a valid file descriptor, but it is not a

      [EINVAL]              HP-UX BSD Sockets only.  The specified socket is
                            not connected.

      [ENOTCONN]            _XOPEN_SOURCE_EXTENDED only.  The specified
                            socket is not connected.

      [EINVAL]              _XOPEN_SOURCE_EXTENDED only.  The how argument
                            is invalid.

 FUTURE DIRECTION    [Toc]    [Back]
      Currently, the default behavior is the HP-UX BSD Sockets; however, it
      might be changed to X/Open Sockets in a future release.  At that time,
      any HP-UX BSD Sockets behavior that is incompatible with X/Open
      Sockets might be obsoleted.  Applications that conform to the X/Open
      specification now will avoid migration problems (see

 AUTHOR    [Toc]    [Back]
      shutdown() was developed by HP and the University of California,

 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003

 shutdown(2)                                                     shutdown(2)

 SEE ALSO    [Toc]    [Back]
      close(2), connect(2), socket(2), xopen_networking(7).

      shutdown(): XPG4

 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003
[ Back ]
 Similar pages
Name OS Title
shutdown Tru64 Shut down socket send and receive operations
mac_get FreeBSD get the label of a file, socket, socket peer or process
mac_get_fd FreeBSD get the label of a file, socket, socket peer or process
mac_get_file FreeBSD get the label of a file, socket, socket peer or process
mac_get_pid FreeBSD get the label of a file, socket, socket peer or process
mac_get_proc FreeBSD get the label of a file, socket, socket peer or process
SSL_shutdown OpenBSD shut down a TLS/SSL connection
SSL_shutdown Tru64 Shut down a TLS/SSL connection
xlv_shutdown IRIX shut down XLV volumes
SSL_shutdown NetBSD shut down a TLS/SSL connection
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service