Updated to the current version of dirent.h (that somehow didn't make it to

here).
Notably changes are: C++ safe, struct dirent is now BeOS compatible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@12 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2002-07-09 13:57:50 +00:00
parent 5f281ed502
commit 5a2b57c361
+23 -5
View File
@@ -6,12 +6,22 @@
#ifndef _DIRENT_H #ifndef _DIRENT_H
#define _DIRENT_H #define _DIRENT_H
// ToDo: should really be <sys/types>
// This file should reside in headers/posix, not here...
// needs ino_t (int64), and dev_t (long)
#include <ktypes.h>
typedef long dev_t;
typedef struct dirent { typedef struct dirent {
vnode_id d_ino; dev_t d_dev;
dev_t d_pdev;
ino_t d_ino;
ino_t d_pino;
unsigned short d_reclen; unsigned short d_reclen;
char d_name[1]; char d_name[1];
} dirent_t; } dirent_t;
// ToDo: this structure is still incompatible with BeOS
typedef struct { typedef struct {
int fd; int fd;
struct dirent *ent; struct dirent *ent;
@@ -19,11 +29,15 @@ typedef struct {
} DIR; } DIR;
#ifndef MAXNAMLEN #ifndef MAXNAMLEN
#ifdef NAME_MAX # ifdef NAME_MAX
#define MAXNAMLEN NAME_MAX # define MAXNAMLEN NAME_MAX
#else # else
#define MAXNAMLEN 256 # define MAXNAMLEN 256
# endif
#endif #endif
#ifdef _cplusplus
extern "C" {
#endif #endif
DIR *opendir(const char *dirname); DIR *opendir(const char *dirname);
@@ -31,5 +45,9 @@ struct dirent *readdir(DIR *dirp);
int closedir(DIR *dirp); int closedir(DIR *dirp);
void rewinddir(DIR *dirp); void rewinddir(DIR *dirp);
#ifdef _cplusplus
}
#endif
#endif /* _DIRENT_H */ #endif /* _DIRENT_H */