xref: /freebsd-14.2/lib/libc/sys/bindat.2 (revision 9a4bc520)
1.\" Copyright (c) 2013 The FreeBSD Foundation
2.\"
3.\" This documentation was written by Pawel Jakub Dawidek under sponsorship from
4.\" the FreeBSD Foundation.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\"
15.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
16.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
19.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25.\" SUCH DAMAGE.
26.\"
27.\" $FreeBSD$
28.\"
29.Dd February 13, 2013
30.Dt BINDAT 2
31.Os
32.Sh NAME
33.Nm bindat
34.Nd assign a local protocol address to a socket
35.Sh LIBRARY
36.Lb libc
37.Sh SYNOPSIS
38.In sys/types.h
39.In sys/socket.h
40.Pp
41.In fcntl.h
42.Ft int
43.Fn bindat "int fd" "int s" "const struct sockaddr *addr" "socklen_t addrlen"
44.Sh DESCRIPTION
45The
46.Fn bindat
47system call assigns the local protocol address to a socket.
48When passed the special value
49.Dv AT_FDCWD
50in the
51.Fa fd
52parameter, the behavior is identical to a call to
53.Xr bind 2 .
54Otherwise,
55.Fn bindat
56works like the
57.Xr bind 2
58system call with two exceptions:
59.Pp
60.Bl -enum -offset indent -compact
61.It
62It is limited to sockets in the PF_LOCAL domain.
63.Pp
64.It
65If the file path stored in the
66.Fa sun_path
67field of the sockaddr_un structure is a relative path, it is located relative
68to the directory associated with the file descriptor
69.Fa fd .
70.El
71.Sh RETURN VALUES
72.Rv -std bindat
73.Sh ERRORS
74The
75.Fn bindat
76system call may fail with the same errors as the
77.Xr bind 2
78system call or with the following errors:
79.Bl -tag -width Er
80.It Bq Er EBADF
81The
82.Fa sun_path
83field does not specify an absolute path and the
84.Fa fd
85argument is neither
86.Dv AT_FDCWD
87nor a valid file descriptor.
88.It Bq Er ENOTDIR
89The
90.Fa sun_path
91field is not an absolute path and
92.Fa fd
93is neither
94.Dv AT_FDCWD
95nor a file descriptor associated with a directory.
96.El
97.Sh SEE ALSO
98.Xr bind 2 ,
99.Xr connectat 2 ,
100.Xr socket 2 ,
101.Xr unix 4
102.Sh AUTHORS
103The
104.Nm
105was developed by
106.An Pawel Jakub Dawidek Aq Mt [email protected]
107under sponsorship from the FreeBSD Foundation.
108