Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

shutdown(2) [freebsd man page]

SHUTDOWN(2)						      BSD System Calls Manual						       SHUTDOWN(2)

NAME
shutdown -- disable sends and/or receives on a socket LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/types.h> #include <sys/socket.h> int shutdown(int s, int how); DESCRIPTION
The shutdown() system call disables sends or receives on a socket. The how argument specifies the type of shutdown. Possible values are: SHUT_RD Further receives will be disallowed. SHUT_WR Further sends will be disallowed. This may cause actions specific to the protocol family of the socket s to happen; see IMPLEMENTATION NOTES. SHUT_RDWR Further sends and receives will be disallowed. Implies SHUT_WR. If the file descriptor s is associated with a SOCK_STREAM socket, all or part of the full-duplex connection will be shut down. IMPLEMENTATION NOTES
The following protocol specific actions apply to the use of SHUT_WR (and potentially also SHUT_RDWR), based on the properties of the socket associated with the file descriptor s. Domain Type Protocol Return value and action PF_INET SOCK_DGRAM IPPROTO_SCTP Return -1. The global variable errno will be set to EOPNOTSUPP. PF_INET SOCK_DGRAM IPPROTO_UDP Return 0. ICMP messages will not be generated. PF_INET SOCK_STREAM IPPROTO_SCTP Return 0. Send queued data and tear down association. PF_INET SOCK_STREAM IPPROTO_TCP Return 0. Send queued data, wait for ACK, then send FIN. PF_INET6 SOCK_DGRAM IPPROTO_SCTP Return -1. The global variable errno will be set to EOPNOTSUPP. PF_INET6 SOCK_DGRAM IPPROTO_UDP Return 0. ICMP messages will not be generated. PF_INET6 SOCK_STREAM IPPROTO_SCTP Return 0. Send queued data and tear down association. PF_INET6 SOCK_STREAM IPPROTO_TCP Return 0. Send queued data, wait for ACK, then send FIN. 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 indi- cate the error. ERRORS
The shutdown() system call fails if: [EBADF] The s argument is not a valid file descriptor. [EINVAL] The how argument is invalid. [EOPNOTSUPP] The socket associated with the file descriptor s does not support this operation. [ENOTCONN] The s argument specifies a SOCK_STREAM socket which is not connected. [ENOTSOCK] The s argument does not refer to a socket. SEE ALSO
connect(2), socket(2), inet(4), inet6(4) STANDARDS
The shutdown() system call is expected to comply with IEEE Std 1003.1g-2000 (``POSIX.1''), when finalized. HISTORY
The shutdown() system call appeared in 4.2BSD. The SHUT_RD, SHUT_WR, and SHUT_RDWR constants appeared in IEEE Std 1003.1g-2000 (``POSIX.1''). AUTHORS
This manual page was updated by Bruce M. Simpson <bms@FreeBSD.org> to reflect how shutdown() behaves with PF_INET and PF_INET6 sockets. BUGS
The ICMP ``port unreachable'' message should be generated in response to datagrams received on a local port to which s is bound after shutdown() is called. BSD
March 5, 2007 BSD

Check Out this Related Man Page

shutdown(2)							System Calls Manual						       shutdown(2)

NAME
shutdown() - shut down a socket SYNOPSIS
DESCRIPTION
The system call is used to shut down a socket. In the case of a full-duplex connection, can be used to either partially or fully shut down the socket, depending upon the value of how. how Interpretation Further receives are disallowed Further sends are disallowed 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 calls return an end-of-file condition. A socket that has been shut down for sending causes further calls to return an error and send the signal. After a socket has been fully shut down, operations other than and 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 on a connectionless socket, such as only marks the socket as unable to do further or 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 sockets, if how is or the connection begins to be closed gracefully in addition to the normal actions. However, the call does not wait for the completion of the graceful dis- connection. The disconnection is complete when both sides of the connection have done a with how equal to or Once the connection has been completely terminated, the socket becomes fully shut down. The option (see socket(2)) does not have any meaning for the call, but does for the call. For more information on how the call interacts with sockets, see socket(2). If a is performed on a socket that has a pending on it, that socket becomes fully shut down when how AF_CCITT only The how parameter behaves differently if the socket is of the address family. If how is set to 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 or with how set to or If how is set to or 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 call can still be read. SCTP Only: SCTP differs from TCP in that SCTP does not have half closed semantics. Hence the call for SCTP is an approximation of the TCP call and solves some different problems. Full TCP-compatibility is not provided, so developers porting TCP applications to SCTP may need to re-code sections that use You can achieve the same results as half closed semantics in SCTP by using SCTP streams. These are the possible SCTP operations: Disables further receive operations. No SCTP protocol action is taken. Disables further send operations and initiates the SCTP shutdown sequence. Disables further send and receive operations and initiates the SCTP shutdown sequence. The major difference between SCTP and TCP is that SCTP initiates immediate and full protocol shutdown, whereas TCP causes TCP to go into the half closed state. behaves the same for SCTP as TCP. The purpose of SCTP is to close the SCTP association while still leaving the socket descriptor open, so that the caller can receive back any data SCTP was unable to deliver. Note: SCTP is only available when the SCTP optional bundle is installed. X/Open Sockets Compilation Environment See xopen_networking(7). RETURN VALUE
Upon successful completion, returns 0; otherwise it returns -1 and is set to indicate the error. ERRORS
fails if any of the following conditions are encountered: s is not a valid file descriptor. 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 or call, or set as a system parameter. s is a valid file descriptor, but it is not a socket. The specified socket is not connected. The specified socket is not connected. The how argument is invalid. WARNINGS
Linking binary objects compiled to specification and binary objects compiled to specification to the same executable may result in unex- pected behavior, including application abnormal termination and unexpected socket errors. See xopen_networking(7) for details and remedy. FUTURE DIRECTION
Currently, the default behavior is the however, it might be changed to in a future release. At that time, any behavior that is incompati- ble with might be obsoleted. Applications that conform to the X/Open specification now will avoid migration problems (see xopen_network- ing(7)). AUTHOR
was developed by HP and the University of California, Berkeley. SEE ALSO
close(2), connect(2), socket(2), sctp(7), xopen_networking(7). STANDARDS CONFORMANCE
shutdown(2)
Man Page