Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ link(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

unlink(2)

unistd(4)

link(2)                                                             link(2)

NAME
     link - set up link to a file

SYNOPSIS
     #include <unistd.h>

     int link(const char *path1, const char *path2);

DESCRIPTION
     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 (directory entry) for the existing file and increments the
     link count by one.

     Upon successful completion, link() marks for update the stctime field
     of the file. Also, the stctime and stmtime fields of the directory
     that contains the new entry are marked for update.

ERRORS
     The following error code descriptions are function-specific. You will
     find a general description in introprm2(2) or in errno(5).

     link() will fail and no link will be created if one or more of the
     following apply:

     EACCES        A component of either path prefix denies search permis-
                   sion, or the requested link requires writing in a direc-
                   tory with a mode that denies write permission, or the
                   calling process does not have permission to access the
                   existing file and this is required by the implementa-
                   tion.

     EEXIST        The link named by path2 exists.

     EFAULT        path1 or path2 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
                   path1 or path2.

     EMLINK        The maximum number of links to a file would exceed
                   LINKMAX.

     EMULTIHOP     Components of path1 or path2 require hopping to multiple
                   remote machines and the file system type does not allow
                   it.

     ENAMETOOLONG  The length of the path1 or path2 argument exceeds
                   PATHMAX or the length of a path1 or path2 component
                   exceeds NAMEMAX.



Page 1                       Reliant UNIX 5.44                Printed 11/98

link(2)                                                             link(2)

     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       path1 or path2 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 and the effective
                   user ID is not superuser.

     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) and the
                   implementation does not support links between file sys-
                   tems, or path1 refers to a named STREAM.

     The link() function may fail if:

     ENAMETOOLONG  Pathname resolution of a symbolic link produced an
                   intermediate result whose length exceeds PATHMAX.

RESULT
     Upon successful completion, a value of 0 is returned. Otherwise, a
     value of -1 is returned and errno is set to indicate the error.

SEE ALSO
     unlink(2), unistd(4).


















Page 2                       Reliant UNIX 5.44                Printed 11/98

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