NAME
	  symlink - Makes a symbolic link to a file

     SYNOPSIS
	  #include <unistd.h>
	  int symlink (
	       const char *path1,
	       const char *path2 );


     PARAMETERS
	  path1	    Specifies the contents of the symbolic link	to
		    create.

	  path2	    Names the symbolic link to be created.


     DESCRIPTION
	  The symlink()	function creates a symbolic link with the name
	  specified by the path2 parameter which refers	to the file
	  named	by the path1 parameter.

	  Like a hard link (described in the link() function), a sym-
	  bolic	link allows a file to have multiple names. The pres-
	  ence of a hard link guarantees the existence of a file, even
	  after	the original name has been removed.  A symbolic	link
	  provides no such assurance; in fact, the file	named by the
	  path1	parameter need not exist when the link is created.
	  Unlike hard links, a symbolic	link can cross file system
	  boundaries.

	  When a component of a	pathname refers	to a symbolic link
	  rather than a	directory, the pathname	contained in the sym-
	  bolic	link is	resolved.  If the pathname in the symbolic
	  link starts with a / (slash),	the symbolic link pathname is
	  resolved relative to the process root	directory.  If the
	  pathname in the symbolic link	does not start with a /
	  (slash), the symbolic	link pathname is resolved relative to
	  the directory	that contains the symbolic link.

	  If the symbolic link is the last component of	the original
	  pathname, remaining components of the	original pathname are
	  appended to the contents of the link and pathname resolution
	  continues.

	  The symbolic link pathname may or may	not be traversed,
	  depending on which function is being performed.  Most	func-
	  tions	traverse the link.

	  The functions	which refer only to the	symbolic link itself,
	  rather than to the object to which the link refers, are:

	  link()    An error will be returned if a symbolic link is
		    named by the path2 parameter.

	  lstat()   If the file	specified is a symbolic	link, the
		    status of the link itself is returned.

	  mknod()   An error will be returned if a symbolic link is
		    named as the path parameter.

	  readlink()
		    This call applies only to symbolic links.

	  remove()  A symbolic link can	be removed by invoking the
		    remove() function.

	  rename()  If the file	to be renamed is a symbolic link, the
		    symbolic link is renamed.  If the new name refers
		    to an existing symbolic link, the symbolic link is
		    destroyed.

	  rmdir()   An error will be returned if a symbolic link is
		    named as the path parameter.

	  symlink() An error will be returned if the symbolic link
		    named by the path2 parameter already exists.  A
		    symbolic link can be created that refers to
		    another symbolic link; that	is, the	path1 parame-
		    ter	can refer to a symbolic	link.

	  unlink()  A symbolic link can	be removed by invoking
		    unlink().


	  Search access	to the symbolic	link is	required to traverse
	  the pathname contained therein.  Normal permission checks
	  are made on each component of	the symbolic link pathname
	  during its resolution.

     NOTES
	  AES Support Level:
			 Trial use


     RETURN VALUES
	  Upon successful completion, the symlink() function returns a
	  value	of 0 (zero). If	the symlink() function fails, a	value
	  of -1	is returned and	errno is set to	indicate the error.

     ERRORS
	  If the symlink() function fails, errno may be	set to one of
	  the following	values:

	  [EEXIST]  The	path specified by the path2 parameter already
		    exists.

	  [EACCES]  The	requested operation requires writing in	a
		    directory with a mode that denies write permis-
		    sion, or search permission is denied on a com-
		    ponent of path2.

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

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

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

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

	  [EDQUOT]  The	directory in which the entry for the symbolic
		    link is being placed cannot	be extended because
		    the	user's quota of	disk blocks on the file	system
		    containing the directory has been exhausted.

	  [ENOENT]  The	path2 parameter	points to a null pathname, or
		    a component	of path2 does not exist.

	  [ENOTDIR] A component	of path2 is not	a directory.

	  [ENAMETOOLONG]
		    The	length of the path1 parameter or path2 parame-
		    ter	exceeds	PATH_MAX, or a pathname	component of
		    path2 is longer than NAME_MAX while
		    {_POSIX_NO_TRUNC} is in effect.

	  [ELOOP]   Too	many symbolic links are	found in translating
		    path2.


     RELATED INFORMATION
	  Functions: link(2), readlink(2), unlink(2)

	  Commands: ln(1)





Acknowledgement and Disclaimer