link(2) DG/UX 4.30 link(2)
NAME
link - Create a new link to a file.
SYNOPSIS
int link (old_path, new_path)
char * old_path;
char * new_path;
PARAMETERS
old_path Address of a pathname to an existing file.
new_path Address of a pathname to be added.
DESCRIPTION
Link adds the pathname pointed to by <new_path> to the
filesystem. The file named by <new_path> is made to
identify the same file as that named by <old_path>.
Terminal Symbolic links are not followed for <new_path>, but
are followed for <old_path>.
The subject file must be of type `ordinary-disk-file',
`block-special-file', `character-special-file', or `fifo-
special-file'.
It is illegal to link to a file of type 'directory',
'socket', or 'symbolic link'.
If link fails, no changes are made. Otherwise, the
following changes are made to the subject file:
* The subject file's link count attribute (st_nlink) is
incremented.
* The subject file's time of last attribute change
(st_ctime) is set to the current time.
ACCESS CONTROL
The calling process must have permission to resolve
<old_path> and <new_path>.
The calling process must have write permission to the
directory containing the entry to be added.
RETURN VALUE
0 The new path was successfully created.
-1 An error occurred. Errno is set to indicate
the error.
EXCEPTIONS
Licensed material--property of copyright holder(s) Page 1
link(2) DG/UX 4.30 link(2)
Errno may be set to one of the following error codes:
ENOENT The file named by <old_path> does not exist.
EEXIST The link named by <new_path> exists.
EPERM Permission to link to the given file type is
denied to the calling process.
EXDEV The link named by <new_path> and the file
named by <old_path> are on different file
system devices.
EACCES The requested link requires writing in a
directory with a mode that denies write
permission.
EROFS The requested link requires writing in a
directory on a file system device mounted
read-only.
EMLINK Too many links to one file. There can only
be MAXLINK links to one file. See
<sys/param.h>.
ENOSPC No more contiguous space for file space or
inodes.
ENOENT A non-terminal component of the <old_path> or
<new_path> does not exist.
ENOTDIR A non-terminal component of the <old_path> or
<new_path> was not a directory or symbolic
link.
ENAMETOOLONG <old_path> or <new_path> exceeds the length
limit for pathnames.
ENAMETOOLONG A component of the <old_path> or <new_path>
exceeds the length limit for filenames.
Licensed material--property of copyright holder(s) Page 2
link(2) DG/UX 4.30 link(2)
ENOMEM There are not enough system resources to
resolve <old_path> or <new_path> or to expand
a symbolic link.
ELOOP The number of symbolic links encountered
during pathname resolution exceeded
MAXSYMLINKS. A symbolic link cycle is
suspected.
EPERM <old_path> or <new_path> contains a character
not in the allowed character set.
EFAULT <old_path> or <new_path> does not completely
reside in the process's address space or the
pathname does not terminate in the process's
address space.
SEE ALSO
The related manual sections: symlink(2), unlink(2),
stat(5).
Licensed material--property of copyright holder(s) Page 3