HPlogo HP-UX Reference > L

link(2)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

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.

STANDARDS CONFORMANCE

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