diff --git a/man2/symlinkat.2 b/man2/symlinkat.2 new file mode 100644 index 000000000..7944ba954 --- /dev/null +++ b/man2/symlinkat.2 @@ -0,0 +1,111 @@ +.\" Hey Emacs! This file is -*- nroff -*- source. +.\" +.\" This manpage is Copyright (C) 2006, Michael Kerrisk +.\" +.\" 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. +.\" +.\" +.TH SYMLINKAT 2 2006-04-10 "Linux 2.6.16" "Linux Programmer's Manual" +.SH NAME +symlinkat \- create a symbolic link relative to a directory file descriptor +.SH SYNOPSIS +.nf +.B #include +.sp +.BI "int symlinkat(const char *" oldpath ", int " newdirfd \ +", const char *" newpath ); +.fi +.SH DESCRIPTION +The +.BR symlinkat () +system call operates in exactly the same way as +.BR symlink (2), +except for the differences described in this manual page. + +If the pathname given in +.I newpath +is relative, then it is interpreted relative to the directory +referred to by the file descriptor +.IR newdirfd +(rather than relative to the current working directory of +the calling process, as is done by +.BR symlink (2) +for a relative pathname). + +If the pathname given in +.I newpath +is relative and +.I newdirfd +is the special value +.BR AT_FDCWD , +then +.I newpath +is interpreted relative to the current working +directory of the calling process (like +.BR symlink (2)). + +If the pathname given in +.IR newpath +is absolute, then +.I newdirfd +is ignored. +.SH "RETURN VALUE" +On success, +.BR symlinkat () +returns 0. +On error, \-1 is returned and +.I errno +is set to indicate the error. +.SH ERRORS +The same errors that occur for +.BR symlink (2) +can also occur for +.BR symlinkat (). +The following additional errors can occur for +.BR symlinkat (): +.TP +.B EBADF +.I newdirfd +is not a valid file descriptor. +.TP +.B ENOTDIR +.I newpath +is a relative path and +.I newdirfd +is a file descriptor referring to a file other than a directory. +.SH NOTES +See +.BR openat (2) +for an explanation of the need for +.BR symlinkat (). +.SH "CONFORMING TO" +This system call is non-standard but is proposed +for inclusion in a future revision of POSIX.1. +.SH VERSIONS +.BR symlinkat () +was added to Linux in kernel 2.6.16. +.SH "SEE ALSO" +.\" FIXME . add a link from symlink.2 to this page. +.\" FIXME . add a link from openat.2 to this page. +.BR openat (2), +.BR path_resolution (2), +.BR symlink (2) +.\" FIXME . eventually list other *at.2 pages here?