Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
link(2)								       link(2)

Name
       link - link to a	file

Syntax
       link(name1, name2)
       char *name1, *name2;

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

       With hard links,	both name1 and name2 must be in	the same file  system.
       Unless  the  caller  is	the  superuser,	name1 must not be a directory.
       Both the	old and	the new	share equal access and rights to the  underly-
       ing object.

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

Diagnostics
       The system call fails and no link is created under the following	condi-
       tions:

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

       [ENAMETOOLONG] A	 component of either pathname exceeded 255 characters,
		      or the entire length of either  pathname	exceeded  1023
		      characters.

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

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

       [ENOENT]	      When  name1  or  name2  point to an empty	string and the
		      environment defined is POSIX or SYSTEM_FIVE.

       [EACCES]	      A	component of either path prefix	denies search  permis-
		      sion.

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

       [EEXIST]	      The link named by	name2 does exist.

       [EPERM]	      The file named by	name1 is a directory, and  the	effec-
		      tive user	ID is not that of superuser or the environment
		      defined is POSIX.

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

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

       [ELOOP]	      Too  many	symbolic links were encountered	in translating
		      one of the pathnames.

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

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

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

       [ESTALE]	      The  file	 handle	given in the argument is invalid.  The
		      file referred to by that file handle no longer exists or
		      has been revoked.

       [ETIMEDOUT]    A	 connect  request  or  remote  file  operation	failed
		      because the connected party  did	not  properly  respond
		      after a period of	time that is dependent on the communi-
		      cations protocol.

       [EMLINK]	      The number of links to the file  named  by  path1	 would
		      exceed {LINK_MAX}.

Environment
       In the POSIX environment, linking to directories	is not allowed.

See Also
       symlink(2), unlink(2)

								       link(2)

Name | Syntax | Description | Return Values | Diagnostics | Environment | See Also

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=link&sektion=2&manpath=ULTRIX+4.2>

home | help