summaryrefslogtreecommitdiffstats
path: root/man2/symlink.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/symlink.2')
-rw-r--r--man2/symlink.2154
1 files changed, 154 insertions, 0 deletions
diff --git a/man2/symlink.2 b/man2/symlink.2
new file mode 100644
index 000000000..efcd6af26
--- /dev/null
+++ b/man2/symlink.2
@@ -0,0 +1,154 @@
+.\" 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 <mtk16@ext.canterbury.ac.nz>
+.\"
+.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
+.B 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
+.B ..
+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, SVID, POSIX, BSD 4.3. SVr4 documents additional error codes
+SVr4, SVID, BSD 4.3, X/OPEN. 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 unlink (2)