Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ link(2) — HP-UX 10.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cp(1)

link(1M)

symlink(2)

unlink(2)

symlink(4)

link(2)

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 disk quota block limit has been reached for this file system. 

[EEXIST] The link named by path2 exists. 

[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. 

[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. 

[EXDEV] The link named by path2 and the file named by path1 are on different logical devices (file systems). 

[EROFS] The requested link requires writing in a directory on a read-only file system. 

[EFAULT] path points outside the allocated address space of the process.  The reliable detection of this error is implementation dependent. 

[ENOENT] path1 or path2 is null. 

[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. 

[ELOOP] Too many symbolic links were encountered in translating either path name. 

DEPENDENCIES

Series 700

If path2 names a symbolic link, link() fails without creating the link, it returns −1, and sets errno to the following value:

[EEXIST] path2 names a symbolic link. 

SEE ALSO

cp(1), link(1M), symlink(2), unlink(2), symlink(4). 

STANDARDS CONFORMANCE

link(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1

Hewlett-Packard Company  —  HP-UX Release 10.20:  July 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026