mirror of https://github.com/mkerrisk/man-pages
155 lines
4.2 KiB
Groff
155 lines
4.2 KiB
Groff
.\" Hey Emacs! This file is -*- nroff -*- source.
|
|
.\"
|
|
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
|
|
.\" 1993 Michael Haardt, Ian Jackson.
|
|
.\"
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
.\" preserved on all copies.
|
|
.\"
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
.\" permission notice identical to this one.
|
|
.\"
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
.\" have taken the same level of care in the production of this manual,
|
|
.\" which is licensed free of charge, as they might when working
|
|
.\" professionally.
|
|
.\"
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
.\"
|
|
.\" Modified 1993-07-24 by Rik Faith
|
|
.\" Modified 1996-04-26 by Nick Duffek <nsd@bbc.com>
|
|
.\" Modified 1996-11-06 by Eric S. Raymond <esr@thyrsus.com>
|
|
.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
|
|
.\" Modified 2004-06-23 by Michael Kerrisk <mtk-manpages@gmx.net>
|
|
.\"
|
|
.TH SYMLINK 2 2004-06-23 "Linux 2.6.7" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
symlink \- make a new name for a file
|
|
.SH SYNOPSIS
|
|
.B #include <unistd.h>
|
|
.sp
|
|
.BI "int symlink(const char *" oldpath ", const char *" newpath );
|
|
.SH DESCRIPTION
|
|
.BR symlink ()
|
|
creates a symbolic link named
|
|
.I newpath
|
|
which contains the string
|
|
.IR oldpath .
|
|
|
|
Symbolic links are interpreted at run-time as if the contents of the
|
|
link had been substituted into the path being followed to find a file or
|
|
directory.
|
|
|
|
Symbolic links may contain
|
|
.I ..
|
|
path components, which (if used at the start of the link) refer to the
|
|
parent directories of that in which the link resides.
|
|
|
|
A symbolic link (also known as a soft link) may point to an existing
|
|
file or to a nonexistent one; the latter case is known as a dangling
|
|
link.
|
|
|
|
The permissions of a symbolic link are irrelevant; the ownership is
|
|
ignored when following the link, but is checked when removal or
|
|
renaming of the link is requested and the link is in a directory with
|
|
the sticky bit
|
|
.RB ( S_ISVTX )
|
|
set.
|
|
|
|
If
|
|
.I newpath
|
|
exists it will
|
|
.I not
|
|
be overwritten.
|
|
.SH "RETURN VALUE"
|
|
On success, zero is returned. On error, \-1 is returned, and
|
|
.I errno
|
|
is set appropriately.
|
|
.SH ERRORS
|
|
.TP
|
|
.B EACCES
|
|
Write access to the directory containing
|
|
.I newpath
|
|
is denied, or one of the directories in the path prefix of
|
|
.IR newpath
|
|
did not allow search permission.
|
|
(See also
|
|
.BR path_resolution (2).)
|
|
.TP
|
|
.B EEXIST
|
|
.I newpath
|
|
already exists.
|
|
.TP
|
|
.B EFAULT
|
|
.IR oldpath " or " newpath " points outside your accessible address space."
|
|
.TP
|
|
.B EIO
|
|
An I/O error occurred.
|
|
.TP
|
|
.B ELOOP
|
|
Too many symbolic links were encountered in resolving
|
|
.IR newpath .
|
|
.TP
|
|
.B ENAMETOOLONG
|
|
.IR oldpath " or " newpath " was too long."
|
|
.TP
|
|
.B ENOENT
|
|
A directory component in
|
|
.I newpath
|
|
does not exist or is a dangling symbolic link, or
|
|
.I oldpath
|
|
is the empty string.
|
|
.TP
|
|
.B ENOMEM
|
|
Insufficient kernel memory was available.
|
|
.TP
|
|
.B ENOSPC
|
|
The device containing the file has no room for the new directory
|
|
entry.
|
|
.TP
|
|
.B ENOTDIR
|
|
A component used as a directory in
|
|
.IR newpath
|
|
is not, in fact, a directory.
|
|
.TP
|
|
.B EPERM
|
|
The filesystem containing
|
|
.IR newpath
|
|
does not support the creation of symbolic links.
|
|
.TP
|
|
.B EROFS
|
|
.I newpath
|
|
is on a read-only filesystem.
|
|
.SH NOTES
|
|
No checking of
|
|
.I oldpath
|
|
is done.
|
|
|
|
Deleting the name referred to by a symlink will actually delete the
|
|
file (unless it also has other hard links). If this behaviour is not
|
|
desired, use
|
|
.BR link ().
|
|
.SH "CONFORMING TO"
|
|
SVr4, 4.3BSD, POSIX.1-2001.
|
|
.\" SVr4 documents additional error codes EDQUOT and ENOSYS.
|
|
See
|
|
.BR open (2)
|
|
re multiple files with the same name, and NFS.
|
|
.SH "SEE ALSO"
|
|
.BR ln (1),
|
|
.BR link (2),
|
|
.BR lstat (2),
|
|
.BR open (2),
|
|
.BR path_resolution (2),
|
|
.BR readlink (2),
|
|
.BR rename (2),
|
|
.BR symlinkat (2),
|
|
.BR unlink (2)
|