bindat.2 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. .Dd February 13, 2013
  28. .Dt BINDAT 2
  29. .Os
  30. .Sh NAME
  31. .Nm bindat
  32. .Nd assign a local protocol address to a socket
  33. .Sh LIBRARY
  34. .Lb libc
  35. .Sh SYNOPSIS
  36. .In sys/types.h
  37. .In sys/socket.h
  38. .Pp
  39. .In fcntl.h
  40. .Ft int
  41. .Fn bindat "int fd" "int s" "const struct sockaddr *addr" "socklen_t addrlen"
  42. .Sh DESCRIPTION
  43. The
  44. .Fn bindat
  45. system call assigns the local protocol address to a socket.
  46. When passed the special value
  47. .Dv AT_FDCWD
  48. in the
  49. .Fa fd
  50. parameter, the behavior is identical to a call to
  51. .Xr bind 2 .
  52. Otherwise,
  53. .Fn bindat
  54. works like the
  55. .Xr bind 2
  56. system call with two exceptions:
  57. .Pp
  58. .Bl -enum -offset indent -compact
  59. .It
  60. It is limited to sockets in the PF_LOCAL domain.
  61. .Pp
  62. .It
  63. If the file path stored in the
  64. .Fa sun_path
  65. field of the sockaddr_un structure is a relative path, it is located relative
  66. to the directory associated with the file descriptor
  67. .Fa fd .
  68. .El
  69. .Sh RETURN VALUES
  70. .Rv -std bindat
  71. .Sh ERRORS
  72. The
  73. .Fn bindat
  74. system call may fail with the same errors as the
  75. .Xr bind 2
  76. system call or with the following errors:
  77. .Bl -tag -width Er
  78. .It Bq Er EBADF
  79. The
  80. .Fa sun_path
  81. field does not specify an absolute path and the
  82. .Fa fd
  83. argument is neither
  84. .Dv AT_FDCWD
  85. nor a valid file descriptor.
  86. .It Bq Er ENOTDIR
  87. The
  88. .Fa sun_path
  89. field is not an absolute path and
  90. .Fa fd
  91. is neither
  92. .Dv AT_FDCWD
  93. nor a file descriptor associated with a directory.
  94. .El
  95. .Sh SEE ALSO
  96. .Xr bind 2 ,
  97. .Xr connectat 2 ,
  98. .Xr socket 2 ,
  99. .Xr unix 4
  100. .Sh AUTHORS
  101. The
  102. .Nm
  103. was developed by
  104. .An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net
  105. under sponsorship from the FreeBSD Foundation.