HPlogo HP-UX Reference Volume 3 of 5 > l

link(2)

» 

Technical documentation

Complete book in PDF

 » 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

© Hewlett-Packard Development Company, L.P.