link(2)link(2) NAME link - make a hard link to a file SYNOPSIS #include 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 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 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 ALSO symlink(2), unlink(2).