Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

unlink(2)



link(2)                   SYSTEM CALLS                    link(2)



NAME
     link - link to a file

SYNOPSIS
     #include <unistd.h>

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

DESCRIPTION
     path1 points to a path name naming an existing file.   path2
     points  to  a path name naming the new directory entry to be
     created.  link creates a new link (directory entry) for  the
     existing file and increments its link count by one.

     Upon  successful  completion,  link  marks  for  update  the
     st_ctime  field of the file. Also, the st_ctime and st_mtime
     fields of the directory that  contains  the  new  entry  are
     marked for update.

     link will fail and no link will be created if one or more of
     the following are true:

     EACCES              A component of either path prefix denies
                         search permission.

     EACCES              The requested link requires writing in a
                         directory  with a mode that denies write
                         permission.

     EEXIST              The link named by path2 exists.

     EFAULT              path  points   outside   the   allocated
                         address space of the process.

     EINTR               A signal was caught during the link sys-
                         tem call.

     ELOOP               Too many symbolic links were encountered
                         in translating path.

     EMLINK              The maximum number of links  to  a  file
                         would be exceeded.

     EMULTIHOP           Components of path  require  hopping  to
                         multiple remote machines and file system
                         type does not allow it.

     ENAMETOOLONG        The length of the path1 or  path2  argu-
                         ment  exceeds  {PATH_MAX}, or the length
                         of a path1 or  path2  component  exceeds
                         {NAME_MAX}  while  _POSIX_NO_TRUNC is in
                         effect.



                                                                1





link(2)                   SYSTEM CALLS                    link(2)



     ENOTDIR             A component of either path prefix is not
                         a directory.

     ENOENT              path1 or path2 is a null path name.

     ENOENT              A component of either path  prefix  does
                         not exist.

     ENOENT              The file named by path1 does not exist.

     ENOLINK             path 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 super-
                         user.

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

SEE ALSO
     unlink(2).

DIAGNOSTICS
     Upon successful completion, a value of 0 is returned.   Oth-
     erwise,  a value of -1 is returned and errno is set to indi-
     cate the error.




















                                                                2



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