123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- .\" Copyright (c) 1983, 1991, 1993
- .\" The Regents of the University of California. All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\" 3. Neither the name of the University nor the names of its contributors
- .\" may be used to endorse or promote products derived from this software
- .\" without specific prior written permission.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .Dd March 30, 2020
- .Dt SYMLINK 2
- .Os
- .Sh NAME
- .Nm symlink ,
- .Nm symlinkat
- .Nd make symbolic link to a file
- .Sh LIBRARY
- .Lb libc
- .Sh SYNOPSIS
- .In unistd.h
- .Ft int
- .Fn symlink "const char *name1" "const char *name2"
- .Ft int
- .Fn symlinkat "const char *name1" "int fd" "const char *name2"
- .Sh DESCRIPTION
- A symbolic link
- .Fa name2
- is created to
- .Fa name1
- .Fa ( name2
- is the name of the
- file created,
- .Fa 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.
- .Pp
- The
- .Fn symlinkat
- system call is equivalent to
- .Fn symlink
- except in the case where
- .Fa name2
- specifies a relative path.
- In this case the symbolic link is created relative to the directory
- associated with the file descriptor
- .Fa fd
- instead of the current working directory.
- If
- .Fn symlinkat
- is passed the special value
- .Dv AT_FDCWD
- in the
- .Fa fd
- parameter, the current working directory is used and the behavior is
- identical to a call to
- .Fn symlink .
- .Sh RETURN VALUES
- .Rv -std symlink
- .Sh ERRORS
- The symbolic link succeeds unless:
- .Bl -tag -width Er
- .It Bq Er ENOTDIR
- A component of the
- .Fa name2
- path prefix is not a directory.
- .It Bq Er ENAMETOOLONG
- A component of the
- .Fa name2
- pathname exceeded 255 characters,
- or the entire length of either path name exceeded 1023 characters.
- .It Bq Er ENOENT
- A component of the
- .Fa name2
- path prefix does not exist.
- .It Bq Er EACCES
- A component of the
- .Fa name2
- path prefix denies search permission, or write permission is denied on the
- parent directory of the file to be created.
- .It Bq Er ELOOP
- Too many symbolic links were encountered in translating the
- .Fa name2
- path name.
- .It Bq Er EEXIST
- The path name pointed at by the
- .Fa name2
- argument
- already exists.
- .It Bq Er EPERM
- The parent directory of the file named by
- .Fa name2
- has its immutable flag set, see the
- .Xr chflags 2
- manual page for more information.
- .It Bq Er EIO
- An I/O error occurred while making the directory entry for
- .Fa name2 ,
- allocating the inode for
- .Fa name2 ,
- or writing out the link contents of
- .Fa name2 .
- .It Bq Er EROFS
- The file
- .Fa name2
- would reside on a read-only file system.
- .It Bq Er 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.
- .It Bq Er ENOSPC
- The new symbolic link cannot be created because
- there is no space left on the file
- system that will contain the symbolic link.
- .It Bq Er ENOSPC
- There are no free inodes on the file system on which the
- symbolic link is being created.
- .It Bq Er EDQUOT
- The directory in which the entry for the new 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.
- .It Bq Er EDQUOT
- The new symbolic link cannot be created because the user's
- quota of disk blocks on the file system that will
- contain the symbolic link has been exhausted.
- .It Bq Er EDQUOT
- The user's quota of inodes on the file system on
- which the symbolic link is being created has been exhausted.
- .It Bq Er EINTEGRITY
- Corrupted data was detected while reading from the file system.
- .It Bq Er EFAULT
- The
- .Fa name1
- or
- .Fa name2
- argument
- points outside the process's allocated address space.
- .El
- .Pp
- In addition to the errors returned by the
- .Fn symlink ,
- the
- .Fn symlinkat
- may fail if:
- .Bl -tag -width Er
- .It Bq Er EBADF
- The
- .Fa name2
- argument does not specify an absolute path and the
- .Fa fd
- argument is neither
- .Dv AT_FDCWD
- nor a valid file descriptor open for searching.
- .It Bq Er ENOTDIR
- The
- .Fa name2
- argument is not an absolute path and
- .Fa fd
- is neither
- .Dv AT_FDCWD
- nor a file descriptor associated with a directory.
- .El
- .Sh SEE ALSO
- .Xr ln 1 ,
- .Xr chflags 2 ,
- .Xr link 2 ,
- .Xr lstat 2 ,
- .Xr readlink 2 ,
- .Xr unlink 2 ,
- .Xr symlink 7
- .Sh STANDARDS
- The
- .Fn symlinkat
- system call follows The Open Group Extended API Set 2 specification.
- .Sh HISTORY
- The
- .Fn symlink
- system call appeared in
- .Bx 4.2 .
- The
- .Fn symlinkat
- system call appeared in
- .Fx 8.0 .
|