A successful call to cfg_link() returns a value of zero
and an unsuccessful call returns the errno.
ENAMETOOLONG
A component of a pathname exceeded NAME_MAX characters,
or an entire path name exceed PATH_MAX characters while
_POSIX_NO_TRUNC is in effect.
ENOENT
A component of either path prefix does not exist.
EACCES
A component of either path prefix denies search permission.
EACCES
The requested link requires writing in a node with a mode that
denies write permission.
ENOENT
The node named by src does not exist.
EEXIST
The node named by dest does exist.
EPERM
The calling process does not have the appropriate privilege to
modify the node indicated by the src argument.
EXDEV
The link named by dest and the node named by src are from different
configuration spaces.
ENOSPC
The node in which the entry for the new link is being placed
cannot be extended because there is no space left on the
configuration space containing the node.
EIO
An I/O error occurred while reading from or writing to the
configuration space to make the link entry.
EROFS
The requested link requires writing in a node on a read-only
configuration space.
DESCRIPTION:
The src and dest arguments point to pathnames which
name existing nodes. The cfg_link() function atomically creates
a link between specified nodes, and increment by one the link count
of the node specified by the src argument.
If the cfg_link() function fails, no link is created, and the
link count of the node remains unchanged by this function call.
NOTES:
The _POSIX_CFG feature flag is defined to indicate
this service is available.