symlink(2)


NAME
     symlink - make symbolic link to a file

SYNOPSIS
     #include <unistd.h>

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

DESCRIPTION
     A symbolic link name2 is created to name1 (name2 is the name of the  file
     created, name1 is the string used in creating the symbolic link).  Either
     name may be an arbitrary path name; the files need not  be  on  the  same
     file system.

RETURN VALUE
     Upon successful completion, a  zero  value  is  returned.   If  an  error
     occurs, the error code is stored in errno and a -1 value is returned.

ERRORS
     The symbolic link is made unless on or more of the following are true:

     [ENOTDIR]      A component of the name2 prefix is not a directory.

     [ENAMETOOLONG] A path name exceeds PATH_MAX characters.

     [ENOENT]       The named file does not exist.

     [EACCES]       A  component  of  the  name2  path  prefix  denies  search
                    permission.

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

     [EEXIST]       Name2 already exists.

     [EIO]          An I/O error occurred while making the directory entry for
                    name2,  or  allocating the inode for name2, or writing out
                    the link contents of name2.

     [EROFS]        The file name2 would reside on a read-only file system.

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

     [ENOSPC]       The new symbolic link  cannot  be  created  because  there
                    there  is  no  space  left  on  the  file system that will
                    contain the symbolic link.


     [ENOSPC]       There are no free inodes on the file system on  which  the
                    symbolic link is being created.

     [EIO]          An I/O error occurred while making the directory entry  or
                    allocating the inode.

     [EFAULT]       Name1 or name2  points  outside  the  process's  allocated
                    address space.

SEE ALSO
     link(2), cp(1), unlink(2).