(libc.info.gz) Local Namespace Details

Info Catalog (libc.info.gz) Local Namespace Concepts (libc.info.gz) Local Namespace (libc.info.gz) Local Socket Example
 
 16.5.2 Details of Local Namespace
 ---------------------------------
 
 To create a socket in the local namespace, use the constant `PF_LOCAL'
 as the NAMESPACE argument to `socket' or `socketpair'.  This constant
 is defined in `sys/socket.h'.
 
  -- Macro: int PF_LOCAL
      This designates the local namespace, in which socket addresses are
      local names, and its associated family of protocols.  `PF_Local'
      is the macro used by Posix.1g.
 
  -- Macro: int PF_UNIX
      This is a synonym for `PF_LOCAL', for compatibility's sake.
 
  -- Macro: int PF_FILE
      This is a synonym for `PF_LOCAL', for compatibility's sake.
 
    The structure for specifying socket names in the local namespace is
 defined in the header file `sys/un.h': 
 
  -- Data Type: struct sockaddr_un
      This structure is used to specify local namespace socket
      addresses.  It has the following members:
 
     `short int sun_family'
           This identifies the address family or format of the socket
           address.  You should store the value `AF_LOCAL' to designate
           the local namespace.   Socket Addresses.
 
     `char sun_path[108]'
           This is the file name to use.
 
           *Incomplete:*  Why is 108 a magic number?  RMS suggests making
           this a zero-length array and tweaking the following example
           to use `alloca' to allocate an appropriate amount of storage
           based on the length of the filename.
 
    You should compute the LENGTH parameter for a socket address in the
 local namespace as the sum of the size of the `sun_family' component
 and the string length (_not_ the allocation size!) of the file name
 string.  This can be done using the macro `SUN_LEN':
 
  -- Macro: int SUN_LEN (_struct sockaddr_un *_ PTR)
      The macro computes the length of socket address in the local
      namespace.
 
Info Catalog (libc.info.gz) Local Namespace Concepts (libc.info.gz) Local Namespace (libc.info.gz) Local Socket Example
automatically generated by info2html