All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.
@(#)link.2 5.1 (Berkeley) 05/09/85
link(name1, name2) char *name1, *name2;
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.
15 [EPERM] Either pathname contains a byte with the high-order bit set.
15 [ENOENT] Either pathname was too long.
15 [ENOTDIR] A component of either path prefix is not a directory.
15 [ENOENT] A component of either path prefix does not exist.
15 [EACCES] A component of either path prefix denies search permission.
15 [ENOENT] The file named by name1 does not exist.
15 [EEXIST] The link named by name2 does exist.
15 [EPERM] The file named by name1 is a directory and the effective user ID is not super-user.
15 [EXDEV] The link named by name2 and the file named by name1 are on different file systems.
15 [EACCES] The requested link requires writing in a directory with a mode that denies write permission.
15 [EROFS] The requested link requires writing in a directory on a read-only file system.
15 [EFAULT] One of the pathnames specified is outside the process's allocated address space.
15 [ELOOP] Too many symbolic links were encountered in translating the pathname.