LINK(2) — SYSTEM CALLS
NAME
link − make a hard link to a file
SYNOPSIS
link(name1, name2)
char ∗name1, ∗name2;
DESCRIPTION
A hard link to name1 is created; the link has the name name2. Name1 must exist.
With hard links, both name1 and name2 must be in the same file system. Unless the caller is the super-user, name1 must not be a directory. Both the old and the new link share equal access and rights to the underlying object.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Otherwise, a value of −1 is returned and errno is set to indicate the error.
ERRORS
Link will fail and no link will be created if one or more of the following are true:
[EPERM] Either pathname contains a byte with the high-order bit set.
[ENOENT] Either pathname was too long.
[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 name1 does not exist.
[EEXIST] The link named by name2 does exist.
[EPERM] The file named by name1 is a directory and the effective user ID is not super-user.
[EXDEV] The link named by name2 and the file named by name1 are on different file systems.
[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] One of the pathnames specified is outside the process’s allocated address space.
[ELOOP] Too many symbolic links were encountered in translating the pathname.
SEE ALSO
Sun Release 2.0 — Last change: 12 February 1983