NAME

     link - make a hard link to a file


SYNOPSIS

     #include <unistd.h>

     int link(const char *name1, const char *name2)


DESCRIPTION

     A hard link to name1 is  created;  the  link  has  the  name
     name2.  Name1 must exist.

     With hard links, both name1 and name2 must be  in  the  same
     file  system.   Name1 must not be a directory.  Both the old
     and the new link share equal access and rights to the under-
     lying object.


RETURN VALUE

     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.


ERRORS

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

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

     [ENAMETOOLONG] A path name exceeds PATH_MAX characters.

     [ENOENT]       A component of either path  prefix  does  not
                    exist.

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

     [ELOOP]        Too many symbolic links were  encountered  in
                    translating  one  of  the pathnames.  (Minix-
                    vmd)

     [ENOENT]       The file named by name1 does not exist.

     [EEXIST]       The link named by name2 does exist.

     [EPERM]        The file named by name1 is  a  directory  and
                    the effective user ID is not super-user.

     [EXDEV]        The link named by name2 and the file named by
                    name1 are on different file systems.

     [ENOSPC]       The directory in which the entry for the  new
                    link  is  being  placed  cannot  be  extended
                    because there is no space left  on  the  file
                    system containing the directory.

     [EIO]          An I/O error occurred while reading  from  or
                    writing to the file system to make the direc-
                    tory entry.

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

     [EFAULT]       One of the pathnames specified is outside the
                    process's allocated address space.


SEE ALSO

     symlink(2), unlink(2).