Node:Local Namespace Details,
Next:Local Socket Example,
Previous:Local Namespace Concepts,
Up:Local Namespace
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
.
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.
|
This is a synonym for PF_LOCAL , for compatibility's sake.
|
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
:
struct sockaddr_un
|
Data Type |
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. See 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
:
int SUN_LEN (struct sockaddr_un * ptr)
|
Macro |
The macro computes the length of socket address in the local namespace.
|