xref: /csrg-svn/lib/libc/sys/link.2 (revision 20036)
Copyright (c) 1980 Regents of the University of California.
All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.

@(#)link.2 5.1 (Berkeley) 05/09/85

LINK 2 "12 February 1983"
C 4
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:

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.

"SEE ALSO"
symlink(2), unlink(2)