about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-11-03 22:31:54 +0100
committerFlorian Weimer <fweimer@redhat.com>2017-11-04 00:28:37 +0100
commitbc18a6d36267cfb221a008490db290988fe04671 (patch)
tree4bc4dc16393036d0d55d2a14b602f7664afd8a19
parent86ec486597056f93ebc215fc6a7f3bf5431d91f1 (diff)
downloadglibc-bc18a6d36267cfb221a008490db290988fe04671.tar.gz
glibc-bc18a6d36267cfb221a008490db290988fe04671.tar.xz
glibc-bc18a6d36267cfb221a008490db290988fe04671.zip
manual: Document the linkat function
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
-rw-r--r--ChangeLog4
-rw-r--r--manual/filesys.texi30
2 files changed, 33 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e8913ba3db..2e838f7fa4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-11-03  Florian Weimer  <fweimer@redhat.com>
+
+	* manual/filesys.texi (Hard Links): Document linkat.
+
 2017-11-03  Joseph Myers  <joseph@codesourcery.com>
 
 	* math/tgmath.h [__HAVE_DISTINCT_FLOAT16
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 5f7eb0e231..ca77996902 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -1205,6 +1205,35 @@ A hardware error occurred while trying to read or write the to filesystem.
 @end table
 @end deftypefun
 
+@deftypefun int linkat (int oldfd, const char *@var{oldname}, int newfd, const char *@var{newname}, int flags)
+@standards{POSIX.1, unistd.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+
+The @code{linkat} function is analogous to the @code{link} function,
+except that it identifies its source and target using a combination of a
+file descriptor (referring to a directory) and a pathname.  If a
+pathnames is not absolute, it is resolved relative to the corresponding
+file descriptor.  The special file descriptor @code{AT_FDCWD} denotes
+the current directory.
+
+The @var{flags} argument is a combination of the following flags:
+
+@table @code
+@item AT_SYMLINK_FOLLOW
+If the source path identified by @var{oldfd} and @var{oldname} is a
+symbolic link, @code{linkat} follows the symbolic link and creates a
+link to its target.  If the flag is not set, a link for the symbolic
+link itself is created; this is not supported by all file systems and
+@code{linkat} can fail in this case.
+
+@item AT_EMPTY_PATH
+If this flag is specified, @var{oldname} can be an empty string.  In
+this case, a new link to the file denoted by the descriptor @var{oldfd}
+is created, which may have been opened with @code{O_PATH} or
+@code{O_TMPFILE}.  This flag is a GNU extension.
+@end table
+@end deftypefun
+
 @node Symbolic Links
 @section Symbolic Links
 @cindex soft link
@@ -3515,7 +3544,6 @@ The @code{mkdtemp} function comes from OpenBSD.
 @c fchownat
 @c futimesat
 @c fstatat (there's a commented-out safety assessment for this one)
-@c linkat
 @c mkdirat
 @c mkfifoat
 @c name_to_handle_at