LINK(S) UNIX System V LINK(S)
Name
link - link to a file
Syntax
int link (path1, path2)
char *path1, *path2;
Description
The path1 argument points to a path name naming an existing
file. The path2 argument points to a path name naming the
new directory entry to be created. The link system call
creates a new link (directory entry) for the existing file.
The link system call will fail and no link will be created
if one or more of the following is true:
[ENOTDIR] A component of either path prefix is not a
directory.
[ENOENT] A component of either path prefix does not
exist.
[EACCES] A component of either path prefix denies
search permission.
[ENOENT] The file named by path1 does not exist.
[EEXIST] The link named by path2 exists.
[EPERM] The file named by path1 is a directory and
the effective user ID is not super-user.
[EXDEV] The link named by path2 and the file named by
path1 are on different logical devices (file
systems).
[ENOENT] path2 points to a null path name.
[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 read-only file system.
[EFAULT] path points outside the allocated address
space of the process.
[EMLINK] The maximum number of links to a file would
be exceeded.
[EINTR] A signal was caught during the link system
call.
[ENOLINK] Path points to a remote machine and the link
to that machine is no longer active.
[EMULTIHOP] Components of path require hopping to
multiple remote machines.
[ENOSPC] The directory containing the link cannot be
extended.
See Also
unlink(S)
Diagnostics
Upon successful completion, a value of 0 is returned.
Otherwise, a value of -1 is returned, and errno is set to
indicate the error.
Standards Conformance
link is conformant with:
AT&T SVID Issue 2, Select Code 307-127;
The X/Open Portability Guide II of January 1987;
IEEE POSIX Std 1003.1-1988 with C Standard Language-
Dependent System Support;
and NIST FIPS 151-1.
(printed 6/20/89)