LINK(2)LINK(2)NAMElink - make a hard link to a file
SYNOPSIS
#include <unistd.h>
int link(const char *name1, const char *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.
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 fol‐
lowing are true:
[ENOTDIR] A component of either path prefix is not a directory.
[ENAMETOOLONG] A path name exceeds PATH_MAX characters.
[ENOENT] A component of either path prefix does not exist.
[EACCES] A component of either path prefix denies search permis‐
sion.
[EACCES] The requested link requires writing in a directory with
a mode that denies write permission.
[ELOOP] Too many symbolic links were encountered in translating
one of the pathnames. (Minix-vmd)
[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.
[ENOSPC] The directory in which the entry for the new link is
being placed cannot be extended because there is no
space left on the file system containing the directory.
[EIO] An I/O error occurred while reading from or writing to
the file system to make the directory entry.
[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.
SEE ALSOsymlink(2), unlink(2).
4th Berkeley Distribution August 26, 1985 LINK(2)