OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / original / man2 / openat.2
index 8ba7ffe..604e121 100644 (file)
@@ -1,172 +1 @@
-.\" 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 OPENAT 2 2009-12-13 "Linux" "Linux Programmer's Manual"
-.SH NAME
-openat \- open a file relative to a directory file descriptor
-.SH SYNOPSIS
-.nf
-.B #include <fcntl.h>
-.sp
-.BI "int openat(int " dirfd ", const char *" pathname ", int " flags );
-.BI "int openat(int " dirfd ", const char *" pathname ", int " flags \
-", mode_t " mode );
-.fi
-.sp
-.in -4n
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.in
-.sp
-.BR openat ():
-.br
-Since glibc 2.10: _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
-.br
-Before glibc 2.10:
-_ATFILE_SOURCE
-.SH DESCRIPTION
-The
-.BR openat ()
-system call operates in exactly the same way as
-.BR open (2),
-except for the differences described in this manual page.
-
-If the pathname given in
-.I pathname
-is relative, then it is interpreted relative to the directory
-referred to by the file descriptor
-.I dirfd
-(rather than relative to the current working directory of
-the calling process, as is done by
-.BR open (2)
-for a relative pathname).
-
-If
-.I pathname
-is relative and
-.I dirfd
-is the special value
-.BR AT_FDCWD ,
-then
-.I pathname
-is interpreted relative to the current working
-directory of the calling process (like
-.BR open (2)).
-
-If
-.I pathname
-is absolute, then
-.I dirfd
-is ignored.
-.SH "RETURN VALUE"
-On success,
-.BR openat ()
-returns a new file descriptor.
-On error, \-1 is returned and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-The same errors that occur for
-.BR open (2)
-can also occur for
-.BR openat ().
-The following additional errors can occur for
-.BR openat ():
-.TP
-.B EBADF
-.I dirfd
-is not a valid file descriptor.
-.TP
-.B ENOTDIR
-.I pathname
-is relative and
-.I dirfd
-is a file descriptor referring to a file other than a directory.
-.SH VERSIONS
-.BR openat ()
-was added to Linux in kernel 2.6.16.
-.SH "CONFORMING TO"
-POSIX.1-2008.
-A similar system call exists on Solaris.
-.\" The 'at' suffix in Solaris is actually double sensed.  It
-.\" primarily referred to "extended *at*tributes", which are
-.\" handled by Solaris' O_XATTR flag, but was also intended
-.\" to refer to the notion of "at a relative location".
-.\"
-.\" See the following for a discussion of the inconsistent
-.\" naming of the *at() functions:
-.\" http://www.opengroup.org/austin/mailarchives/ag/msg09103.html
-.\" Subject:   RE: The naming of at()s is a difficult matter
-.\" From:      Don Cragun
-.\" Date:      Tue, 14 Feb 2006 14:56:50 -0800 (PST)
-.\"
-.SH NOTES
-.BR openat ()
-and other similar system calls suffixed "at" are supported
-for two reasons.
-
-First,
-.BR openat ()
-allows an application to avoid race conditions that could
-occur when using
-.BR open (2)
-to open files in directories other than the current working directory.
-These race conditions result from the fact that some component
-of the directory prefix given to
-.BR open (2)
-could be changed in parallel with the call to
-.BR open (2).
-Such races can be avoided by
-opening a file descriptor for the target directory,
-and then specifying that file descriptor as the
-.I dirfd
-argument of
-.BR openat ().
-
-Second,
-.BR openat ()
-allows the implementation of a per-thread "current working
-directory", via file descriptor(s) maintained by the application.
-(This functionality can also be obtained by tricks based
-on the use of
-.IR /proc/self/fd/ dirfd,
-but less efficiently.)
-.SH "SEE ALSO"
-.BR faccessat (2),
-.BR fchmodat (2),
-.BR fchownat (2),
-.BR fstatat (2),
-.BR futimesat (2),
-.BR linkat (2),
-.BR mkdirat (2),
-.BR mknodat (2),
-.BR open (2),
-.BR readlinkat (2),
-.BR renameat (2),
-.BR symlinkat (2),
-.BR unlinkat (2),
-.BR utimensat (2),
-.BR mkfifoat (3),
-.BR path_resolution (7)
+.so man2/open.2