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

  man pages->OpenBSD man pages -> unix (4)              
Title
Content
Arch
Section
 

UNIX(4)

Contents


NAME    [Toc]    [Back]

     unix - UNIX-domain protocol family

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <sys/un.h>

DESCRIPTION    [Toc]    [Back]

     The UNIX-domain protocol family is a collection of protocols
that provides
  local (on-machine) interprocess communication through
the normal
     socket(2) mechanisms.  The UNIX-domain family  supports  the
SOCK_STREAM
     and  SOCK_DGRAM  socket  types and uses filesystem pathnames
for addressing.

ADDRESSING    [Toc]    [Back]

     UNIX-domain addresses are variable-length  filesystem  pathnames of at most
     104  characters.   The  include file <sys/un.h> defines this
address:

           struct sockaddr_un {
                   u_char  sun_len;
                   u_char  sun_family;
                   char    sun_path[104];
           };

     Binding a name to a UNIX-domain socket with bind(2) causes a
socket file
     to  be  created in the filesystem.  This file is not removed
when the socket
 is closed--unlink(2) must be used to remove the file.

     The UNIX-domain protocol family does not  support  broadcast
addressing or
     any form of ``wildcard'' matching on incoming messages.  All
addresses
     are absolute- or  relative-pathnames  of  other  UNIX-domain
sockets.  Normal
     filesystem  access-control  mechanisms are also applied when
referencing
     pathnames; e.g., the destination of a  connect(2)  or  sendto(2) must be
     writable.

PROTOCOLS    [Toc]    [Back]

     The  UNIX-domain  protocol  family  is  comprised  of simple
transport protocols
 that support the SOCK_STREAM  and  SOCK_DGRAM  abstractions.
     SOCK_STREAM  sockets  also support the communication of UNIX
file descriptors
 through the use of the msg_control field in the msg argument to
     sendmsg(2) and recvmsg(2).

     Any valid descriptor may be sent in a message.  The file descriptor(s) to
     be passed are described using a struct cmsghdr that  is  defined in the include
  file  <sys/socket.h>.   The  type  of  the message is
SCM_RIGHTS, and
     the data portion of the messages is  an  array  of  integers
representing the
     file  descriptors  to  be passed.  The number of descriptors
being passed is
     defined by the length field of the message; the length field
is the sum
     of the size of the header plus the size of the array of file
descriptors.

     The received descriptor is a duplicate of the  sender's  descriptor, as if
     it were created with a call to dup(2).  Per-process descriptor flags, set
     with fcntl(2), are not passed to  a  receiver.   Descriptors
that are awaiting
  delivery, or that are purposely not received, are automatically
     closed by the system when the destination socket is  closed.

SEE ALSO    [Toc]    [Back]

      
      
     socket(2), netintro(4)

     "An  Introductory 4.3 BSD Interprocess Communication Tutorial", PS1, 7.

     "An Advanced 4.3 BSD Interprocess  Communication  Tutorial",
PS1, 8.

OpenBSD      3.6                           June      9,      1993
[ Back ]
 Similar pages
Name OS Title
uucpd OpenBSD unix to unix copy protocol daemon
getpeereid FreeBSD get the effective credentials of a UNIX-domain peer
inet IRIX Internet protocol family
atalk OpenBSD AppleTalk Protocol Family
raw IRIX raw network protocol family
inet FreeBSD Internet protocol family
inet OpenBSD Internet protocol family
inet Tru64 Internet Protocol family
inet6 FreeBSD Internet protocol version 6 family
inet6 OpenBSD Internet protocol version 6 family
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service