summaryrefslogtreecommitdiff
path: root/io/fcntl.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-11-10 00:12:21 +0000
committerUlrich Drepper <drepper@redhat.com>2005-11-10 00:12:21 +0000
commit4973cbe599b0ddc97306eb8bb23bd2104c89a565 (patch)
treeefb1daac3e5f9e78859ff420722c824569d94fb8 /io/fcntl.h
parent9f1016c0df0dc9c548700619af7c33f882fc76ed (diff)
downloadglibc-4973cbe599b0ddc97306eb8bb23bd2104c89a565.tar.gz
* io/fcntl.h: Declare openat and openat64.
* io/Makefile (routines): Add openat and openat64. (tests): Add tst-openat. * io/Versions: Add openat and openat64 for GLIBC_2.4. * sysdeps/generic/openat.c: New file. * sysdeps/generic/openat64.c: New file. * sysdeps/unix/sysv/linux/openat.c: New file. * sysdeps/unix/sysv/linux/openat64.c: New file. * io/tst-openat.c: New file. * sysdeps/unix/sysv/linux/device-nrs.h: Add info for /dev/full.
Diffstat (limited to 'io/fcntl.h')
-rw-r--r--io/fcntl.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/io/fcntl.h b/io/fcntl.h
index ef9d5f9b81..044a988872 100644
--- a/io/fcntl.h
+++ b/io/fcntl.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,1992,1994-2001,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -82,6 +83,32 @@ extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
#endif
+#ifdef __USE_GNU
+/* Similar to OPEN but a relative path name is interpreted relative to
+ the directory for which FD is a descriptor.
+
+ NOTE: some other OPENAT implementation support additional functionality
+ through this interface, especially using the O_XATTR flag. This is not
+ yet supported here.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+# ifndef __USE_FILE_OFFSET64
+extern int openat (int __fd, __const char *__file, int __oflag, ...)
+ __nonnull ((2));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag,
+ ...), openat64) __nonnull ((2));
+# else
+# define openat openat64
+# endif
+# endif
+
+extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
+ __nonnull ((2));
+#endif
+
/* Create and open FILE, with mode MODE. This takes an `int' MODE
argument because that is what `mode_t' will be widened to.