summaryrefslogtreecommitdiff
path: root/include/dirent.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dirent.h')
-rw-r--r--include/dirent.h75
1 files changed, 47 insertions, 28 deletions
diff --git a/include/dirent.h b/include/dirent.h
index 006e5dcb2..565a94dee 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2000, 2003, 2004 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
@@ -128,12 +128,18 @@ enum
typedef struct __dirstream DIR;
/* Open a directory stream on NAME.
- Return a DIR stream on the directory, or NULL if it could not be opened. */
-extern DIR *opendir (__const char *__name) __THROW;
+ Return a DIR stream on the directory, or NULL if it could not be opened.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern DIR *opendir (__const char *__name) __nonnull ((1));
/* Close the directory stream DIRP.
- Return 0 if successful, -1 if not. */
-extern int closedir (DIR *__dirp) __THROW;
+ Return 0 if successful, -1 if not.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern int closedir (DIR *__dirp) __nonnull ((1));
/* Read a directory entry from DIRP. Return a pointer to a `struct
dirent' describing the entry, or NULL for EOF or error. The
@@ -141,35 +147,43 @@ extern int closedir (DIR *__dirp) __THROW;
same DIR stream.
If the Large File Support API is selected we have to use the
- appropriate interface. */
+ appropriate interface.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
#ifndef __USE_FILE_OFFSET64
-extern struct dirent *readdir (DIR *__dirp) __THROW;
+extern struct dirent *readdir (DIR *__dirp) __nonnull ((1));
#else
# ifdef __REDIRECT
-extern struct dirent *__REDIRECT (readdir, (DIR *__dirp) __THROW, readdir64);
+extern struct dirent *__REDIRECT (readdir, (DIR *__dirp), readdir64)
+ __nonnull ((1));
# else
# define readdir readdir64
# endif
#endif
#ifdef __USE_LARGEFILE64
-extern struct dirent64 *readdir64 (DIR *__dirp) __THROW;
+extern struct dirent64 *readdir64 (DIR *__dirp) __nonnull ((1));
#endif
#if defined __USE_POSIX || defined __USE_MISC
/* Reentrant version of `readdir'. Return in RESULT a pointer to the
- next entry. */
+ next entry.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
# ifndef __USE_FILE_OFFSET64
extern int readdir_r (DIR *__restrict __dirp,
struct dirent *__restrict __entry,
- struct dirent **__restrict __result) __THROW;
+ struct dirent **__restrict __result)
+ __nonnull ((1, 2, 3));
# else
# ifdef __REDIRECT
extern int __REDIRECT (readdir_r,
(DIR *__restrict __dirp,
struct dirent *__restrict __entry,
- struct dirent **__restrict __result) __THROW,
- readdir64_r);
+ struct dirent **__restrict __result),
+ readdir64_r) __nonnull ((1, 2, 3));
# else
# define readdir_r readdir64_r
# endif
@@ -178,27 +192,32 @@ extern int __REDIRECT (readdir_r,
# ifdef __USE_LARGEFILE64
extern int readdir64_r (DIR *__restrict __dirp,
struct dirent64 *__restrict __entry,
- struct dirent64 **__restrict __result) __THROW;
+ struct dirent64 **__restrict __result)
+ __nonnull ((1, 2, 3));
# endif
#endif /* POSIX or misc */
/* Rewind DIRP to the beginning of the directory. */
-extern void rewinddir (DIR *__dirp) __THROW;
+extern void rewinddir (DIR *__dirp) __THROW __nonnull ((1));
#if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN
# include <bits/types.h>
/* Seek to position POS on DIRP. */
-extern void seekdir (DIR *__dirp, long int __pos) __THROW;
+extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1));
/* Return the current position of DIRP. */
-extern long int telldir (DIR *__dirp) __THROW;
+extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
#endif
#if defined __USE_BSD || defined __USE_MISC
/* Return the file descriptor used by DIRP. */
-extern int dirfd (DIR *__dirp) __THROW;
+extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
+
+# if 0 /* defined __OPTIMIZE__ && defined _DIR_dirfd */
+# define dirfd(dirp) _DIR_dirfd (dirp)
+# endif
# ifndef MAXNAMLEN
/* Get the definitions of the POSIX.1 limits. */
@@ -223,15 +242,16 @@ extern int dirfd (DIR *__dirp) __THROW;
extern int scandir (__const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (__const struct dirent *),
- int (*__cmp) (__const void *, __const void *)) __THROW;
+ int (*__cmp) (__const void *, __const void *))
+ __nonnull ((1, 2));
# else
# ifdef __REDIRECT
extern int __REDIRECT (scandir,
(__const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (__const struct dirent *),
- int (*__cmp) (__const void *, __const void *)) __THROW,
- scandir64);
+ int (*__cmp) (__const void *, __const void *)),
+ scandir64) __nonnull ((1, 2));
# else
# define scandir scandir64
# endif
@@ -243,19 +263,19 @@ extern int __REDIRECT (scandir,
extern int scandir64 (__const char *__restrict __dir,
struct dirent64 ***__restrict __namelist,
int (*__selector) (__const struct dirent64 *),
- int (*__cmp) (__const void *, __const void *)) __THROW;
+ int (*__cmp) (__const void *, __const void *))
+ __nonnull ((1, 2));
# endif
/* Function to compare two `struct dirent's alphabetically. */
# ifndef __USE_FILE_OFFSET64
extern int alphasort (__const void *__e1, __const void *__e2)
- __THROW __attribute_pure__;
+ __THROW __attribute_pure__ __nonnull ((1, 2));
# else
# ifdef __REDIRECT
extern int __REDIRECT (alphasort,
- (__const void *__e1, __const void *__e2)
- __THROW,
- alphasort64) __attribute_pure__;
+ (__const void *__e1, __const void *__e2),
+ alphasort64) __attribute_pure__ __nonnull ((1, 2));
# else
# define alphasort alphasort64
# endif
@@ -263,10 +283,9 @@ extern int __REDIRECT (alphasort,
# if defined __USE_GNU && defined __USE_LARGEFILE64
extern int alphasort64 (__const void *__e1, __const void *__e2)
- __THROW __attribute_pure__;
+ __THROW __attribute_pure__ __nonnull ((1, 2));
# endif
-
#endif /* Use BSD or misc. */
__END_DECLS