NAME
link - 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 under-
lying object.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Oth-
erwise, a value of -1 is returned and errno is set to indi-
cate the error.
ERRORS
Link will fail and no link will be created if one or more of
the following 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 permission.
[EACCES] The requested link requires writing in a
directory with a mode that denies write per-
mission.
[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 direc-
tory 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 ALSO
symlink(2), unlink(2).