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

FreeBSD Manual Pages

  
 
  

home | help
link(2)				 System	Calls			       link(2)

NAME
       link - link to a	file

SYNOPSIS
       #include	<unistd.h>

       int link(const char *existing, const char *new);

DESCRIPTION
       The link() function creates a new link (directory entry)	for the	exist-
       ing file	and increments its link	count by one.  The  existing  argument
       points to a path	name naming an existing	file.  The new argument	points
       to a pathname naming the	new directory entry to be created.

       To create hard links, both files	must be	on the same file system.  Both
       the  old	and the	new link share equal access and	rights to the underly-
       ing object. Privileged processes	can make multiple links	 to  a	direc-
       tory.  Unless the caller	is privileged, the file	named by existing must
       not be a	directory.

       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.

RETURN VALUES
       Upon successful completion, 0 is	returned. Otherwise, -1	 is  returned,
       no link is created, and errno is	set to indicate	the error.

ERRORS
       The link() function will	fail if:

       EACCES	       A component of either path prefix denies	search permis-
		       sion, or	the requested link requires writing in	a  di-
		       rectory with a mode that	denies write permission.

       EDQUOT	       The directory where the entry for the new link is being
		       placed cannot be	extended because the user's  quota  of
		       disk blocks on that file	system has been	exhausted.

       EEXIST	       The link	named by new exists.

       EFAULT	       The  existing  or new argument points to	an illegal ad-
		       dress.

       EINTR	       A signal	was caught during the execution	of the	link()
		       function.

       ELOOP	       Too many	symbolic links were encountered	in translating
		       path.

       EMLINK	       The maximum number of links to  a  file	would  be  ex-
		       ceeded.

       ENAMETOOLONG    The  length  of	the  existing  or new argument exceeds
		       PATH_MAX, or the	length of a existing or	new  component
		       exceeds NAME_MAX	while _POSIX_NO_TRUNC is in effect.

       ENOENT	       The existing or new argument is a null pathname;	a com-
		       ponent of either	path prefix does  not  exist;  or  the
		       file named by existing does not exist.

       ENOLINK	       The existing or new argument 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 ex-
		       tended.

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

       EPERM	       The  file  named	 by  existing  is  a directory and the
		       {PRIV_SYS_LINKDIR} privilege is not asserted in the ef-
		       fective set of the calling process.

		       The  effective  user ID does not	match the owner	of the
		       file and	the {PRIV_FILE_LINK_ANY} privilege is not  as-
		       serted in the effective set of the calling process.

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

       EXDEV	       The link	named by new and the file  named  by  existing
		       are on different	logical	devices	(file systems).

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Async-Signal-Safe		   |
       +-----------------------------+-----------------------------+

SEE ALSO
       symlink(2), unlink(2), attributes(5), privileges(5), standards(5)

SunOS 5.10			  20 Jan 2003			       link(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

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

home | help