From a161fc03b01830d27aab7ebc438466c095ddc1ca Mon Sep 17 00:00:00 2001 From: Michael Kerrisk Date: Fri, 21 Feb 2014 10:02:15 +0100 Subject: [PATCH] linkat.2: Convert to link to link.2 Signed-off-by: Michael Kerrisk --- man2/linkat.2 | 214 +------------------------------------------------- 1 file changed, 1 insertion(+), 213 deletions(-) diff --git a/man2/linkat.2 b/man2/linkat.2 index f30fa57b6..a7d6da568 100644 --- a/man2/linkat.2 +++ b/man2/linkat.2 @@ -1,213 +1 @@ -.\" This manpage is Copyright (C) 2006, Michael Kerrisk -.\" -.\" %%%LICENSE_START(VERBATIM) -.\" 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. -.\" %%%LICENSE_END -.\" -.TH LINKAT 2 2014-01-17 "Linux" "Linux Programmer's Manual" -.SH NAME -linkat \- create a file link relative to directory file descriptors -.SH SYNOPSIS -.nf -.B #include /* Definition of AT_* constants */ -.B #include -.sp -.BI "int linkat(int " olddirfd ", const char *" oldpath , -.BI " int " newdirfd ", const char *" newpath ", int " flags ); -.fi -.sp -.in -4n -Feature Test Macro Requirements for glibc (see -.BR feature_test_macros (7)): -.in -.sp -.BR linkat (): -.PD 0 -.ad l -.RS 4 -.TP 4 -Since glibc 2.10: -_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L -.TP -Before glibc 2.10: -_ATFILE_SOURCE -.RE -.ad -.PD -.SH DESCRIPTION -The -.BR linkat () -system call operates in exactly the same way as -.BR link (2), -except for the differences described in this manual page. - -If the pathname given in -.I oldpath -is relative, then it is interpreted relative to the directory -referred to by the file descriptor -.I olddirfd -(rather than relative to the current working directory of -the calling process, as is done by -.BR link (2) -for a relative pathname). - -If -.I oldpath -is relative and -.I olddirfd -is the special value -.BR AT_FDCWD , -then -.I oldpath -is interpreted relative to the current working -directory of the calling process (like -.BR link (2)). - -If -.I oldpath -is absolute, then -.I olddirfd -is ignored. - -The interpretation of -.I newpath -is as for -.IR oldpath , -except that a relative pathname is interpreted relative -to the directory referred to by the file descriptor -.IR newdirfd . - -The following values can be bitwise ORed in -.IR flags : -.TP -.BR AT_EMPTY_PATH " (since Linux 2.6.39)" -.\" commit 11a7b371b64ef39fc5fb1b6f2218eef7c4d035e3 -If -.I oldpath -is an empty string, create a link to the file referenced by -.IR olddirfd -(which may have been obtained using the -.BR open (2) -.B O_PATH -flag). -In this case, -.I olddirfd -can refer to any type of file, not just a directory. -The caller must have the -.BR CAP_DAC_READ_SEARCH -capability in order to use this flag; -this prevents arbitrary users from creating hard links -using file descriptors received via a UNIX domain socket -(see the discussion of -.BR SCM_RIGHTS -in -.BR unix (7)). -This flag is Linux-specific; define -.B _GNU_SOURCE -.\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed -to obtain its definition. -.TP -.BR AT_SYMLINK_FOLLOW " (since Linux 2.6.18)" -By default, -.BR linkat (), -does not dereference -.I oldpath -if it is a symbolic link (like -.BR link (2)). -The flag -.B AT_SYMLINK_FOLLOW -can be specified in -.I flags -to cause -.I oldpath -to be dereferenced if it is a symbolic link. -.PP -Before kernel 2.6.18, the -.I flags -argument was unused, and had to be specified as 0. -.SH RETURN VALUE -On success, -.BR linkat () -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 link (2) -can also occur for -.BR linkat (). -The following additional errors can occur for -.BR linkat (): -.TP -.B EBADF -.I olddirfd -or -.I newdirfd -is not a valid file descriptor. -.TP -.B EINVAL -An invalid flag value was specified in -.IR flags . -.TP -.B ENOENT -.B AT_EMPTY_PATH -was specified in -.IR flags , -but the caller did not have the -.B CAP_DAC_READ_SEARCH -capability. -.TP -.B ENOENT -An attempt was made to link to the -.I /proc/self/fd/NN -file corresponding to a file descriptor created with - - open(path, O_TMPFILE | O_EXCL, mode); - -See -.BR open (2). -.TP -.B ENOTDIR -.I oldpath -is relative and -.I olddirfd -is a file descriptor referring to a file other than a directory; -or similar for -.I newpath -and -.I newdirfd -.SH VERSIONS -.BR linkat () -was added to Linux in kernel 2.6.16; -library support was added to glibc in version 2.4. -.SH CONFORMING TO -POSIX.1-2008. -.SH NOTES -See -.BR openat (2) -for an explanation of the need for -.BR linkat (). -.SH SEE ALSO -.BR link (2), -.BR openat (2), -.BR path_resolution (7), -.BR symlink (7) +.so man2/link.2