link(2) link(2)
NAME
link - link to a file
SYNOPSIS
#include <unistd.h>
int link(const char *path1, const char *path2);
DESCRIPTION
link creates a new link (directory entry) for a file. path1
points to a pathname naming an existing file. path2 points to
a pathname naming the new directory entry to be created. link
creates a new link for the existing file and increments its
link count by one.
Return Values
On success, link returns 0 and marks for update the st_ctime
field of the file. Also, the st_ctime and st_mtime fields of
the directory that contains the new entry are marked for
update. On failure, link returns -1, sets errno to identify
the error, and no link is created.
Errors
In the following conditions, link fails and sets errno to:
EACCES Search permission is denied on a component of one of the
path prefixes.
EACCES Write permission is denied on the directory in which the
link is to be created.
EACCES The file pointed to by path1 has discrete privileges and
write permission is denied.
EEXIST The link named by path2 exists.
EFAULT path points outside the allocated address space of the
process.
EINTR A signal was caught during the link system call.
ELOOP Too many symbolic links were encountered in translating
path.
EMLINK The maximum number of links to a file would be exceeded.
Copyright 1994 Novell, Inc. Page 1
link(2) link(2)
EMULTIHOP
Components of path require hopping to multiple remote
machines and file system type does not allow it.
ENAMETOOLONG
The length of the path1 or path2 argument exceeds
{PATH_MAX}, or the length of a path1 or path2 component
exceeds {NAME_MAX} while _POSIX_NO_TRUNC is in effect.
ENOTDIR
A component of either path prefix is not a directory.
ENOENT path1 or path2 is a null pathname.
ENOENT A component of either path prefix does not exist.
ENOENT The file named by path1 does not exist.
ENOLINK
path points to a remote machine and the link to that
machine is no longer active.
ENOSPC the directory that would contain the link cannot be
extended.
EPERM The file named by path1 is a directory; hard links may
not refer to directories.
EROFS The requested link requires writing in a directory on a
read-only file system.
EXDEV The link named by path2 and the file named by path1 are
on different logical devices (file systems).
REFERENCES
realpath(3C), symlink(2), unlink(2)
Copyright 1994 Novell, Inc. Page 2