NAME
link() — link to a file
SYNOPSIS
#include <unistd.h>
int link(const char *path1, const char *path2);
DESCRIPTION
The
link()
system call creates a new link
(directory entry) for the existing file.
path1
points to a path name naming an existing file.
path2
points to a path name naming the new directory entry to be created.
RETURN VALUE
Upon successful completion,
link()
returns zero.
Otherwise, it returns -1 and sets
errno
(see
errno(2))
to indicate the error.
ERRORS
The
link()
system call fails and no link is created
if one or more of the following is true:
- EACCES
A component of either path prefix denies search permission.
- EACCES
The requested link requires writing in a directory
that does not permit writing.
- EDQUOT
The user's or group's disk quota block limit has been reached for this file system.
- EEXIST
The link named by
path2
exists.
- EFAULT
path
points outside the allocated address space of the process.
The reliable detection of this error is implementation dependent.
- ELOOP
Too many symbolic links were encountered in translating either path name.
- EMLINK
The maximum number of links to a file would be exceeded.
- ENAMETOOLONG
Either the specified path exceeds
PATH_MAX
bytes, or a component of either specified path exceeds
NAME_MAX
while
POSIX_NO_TRUNC
is in effect.
- ENOENT
The file named by
path1
does not exist.
- ENOENT
A component of either path prefix does not exist.
- ENOENT
path2
points to a null path name.
- ENOENT
path1
or
path2
is null.
- ENOSPC
The directory to contain the file cannot be extended.
- ENOTDIR
A component of either path prefix is not a directory.
- EPERM
The file named by
path1
is a directory and the effective user
ID is not a user who has
appropriate privileges.
Some file systems return this error whenever
path1
names a directory, regardless of the user ID.
- 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).
STANDARDS CONFORMANCE
link(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1