'\" te .\" Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. .\" Copyright 1989 AT&T .TH bind 3SOCKET "24 Mar 2011" "SunOS 5.11" "Sockets Library Functions" .SH NAME bind \- bind a name to a socket .SH SYNOPSIS .LP .nf \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lsocket\fR \fB -lnsl \fR [ \fIlibrary\fR ... ] #include \fBint\fR \fBbind\fR(\fBint\fR \fIs\fR, \fBconst struct sockaddr *\fR\fIname\fR, \fBsocklen_t\fR \fInamelen\fR); .fi .SH DESCRIPTION .sp .LP The \fBbind()\fR function assigns a name to an unnamed socket. When a socket is created with \fBsocket\fR(3SOCKET), it exists in a name space (address family) but has no name assigned. The \fBbind()\fR function requests that the name pointed to by \fIname\fR be assigned to the socket. .SH RETURN VALUES .sp .LP Upon successful completion \fB0\fR is returned. Otherwise, \fB\(mi1\fR is returned and \fBerrno\fR is set to indicate the error. .SH ERRORS .sp .LP The \fBbind()\fR function will fail if: .sp .ne 2 .mk .na \fB\fBEACCES\fR\fR .ad .RS 17n .rt The requested address is protected, and \fB{PRIV_NET_PRIVADDR}\fR is not asserted in the effective set of the current process. .RE .sp .ne 2 .mk .na \fB\fBEADDRINUSE\fR\fR .ad .RS 17n .rt The specified address is already in use. .RE .sp .ne 2 .mk .na \fB\fBEADDRNOTAVAIL\fR\fR .ad .RS 17n .rt The specified address is not available on the local machine. .RE .sp .ne 2 .mk .na \fB\fBEBADF\fR\fR .ad .RS 17n .rt \fIs\fR is not a valid descriptor. .RE .sp .ne 2 .mk .na \fB\fBEINVAL\fR\fR .ad .RS 17n .rt \fInamelen\fR is not the size of a valid address for the specified address family. .sp The socket is already bound to an address. .sp Socket options are inconsistent with port attributes. .RE .sp .ne 2 .mk .na \fB\fBENOSR\fR\fR .ad .RS 17n .rt There were insufficient \fBSTREAMS\fR resources for the operation to complete. .RE .sp .ne 2 .mk .na \fB\fBENOTSOCK\fR\fR .ad .RS 17n .rt \fIs\fR is a descriptor for a file, not a socket. .RE .sp .LP The following errors are specific to binding names in the UNIX domain: .sp .ne 2 .mk .na \fB\fBEACCES\fR\fR .ad .RS 11n .rt Search permission is denied for a component of the path prefix of the pathname in \fIname\fR. .RE .sp .ne 2 .mk .na \fB\fBEIO\fR\fR .ad .RS 11n .rt An I/O error occurred while making the directory entry or allocating the inode. .RE .sp .ne 2 .mk .na \fB\fBEISDIR\fR\fR .ad .RS 11n .rt A null pathname was specified. .RE .sp .ne 2 .mk .na \fB\fBELOOP\fR\fR .ad .RS 11n .rt Too many symbolic links were encountered in translating the pathname in \fIname\fR. .RE .sp .ne 2 .mk .na \fB\fBENOENT\fR\fR .ad .RS 11n .rt A component of the path prefix of the pathname in \fIname\fR does not exist. .RE .sp .ne 2 .mk .na \fB\fBENOTDIR\fR\fR .ad .RS 11n .rt A component of the path prefix of the pathname in \fIname\fR is not a directory. .RE .sp .ne 2 .mk .na \fB\fBEROFS\fR\fR .ad .RS 11n .rt The inode would reside on a read-only file system. .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPEATTRIBUTE VALUE _ MT-LevelSafe .TE .SH SEE ALSO .sp .LP \fBunlink\fR(2), \fBsocket\fR(3SOCKET), \fBattributes\fR(5), \fBprivileges\fR(5), \fBsocket.h\fR(3HEAD) .SH NOTES .sp .LP Binding a name in the UNIX domain creates a socket in the file system that must be deleted by the caller when it is no longer needed by using \fBunlink\fR(2). .sp .LP The rules used in name binding vary between communication domains.