Rev 227 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef DIRENT_H_INCLUDED#define DIRENT_H_INCLUDED/* Filename: dirent.h** Purpose: UNIX directory services** Note: dirfd() not supported*/#if !defined(WIN32)#error Target not WIN32 ...#endif#include <unistd.h> /* UNIX types */#if !defined(_POSIX_)#define _POSIX_#endif#include <limits.h> /* PATH_MAX, NAME_MAX */#define DIRBLKSIZ 1024#if !defined(MAXPATHLEN)#define MAXPATHLEN PATH_MAX#endif#if !defined(MAXNAMLEN)#define MAXNAMLEN NAME_MAX#endifstruct dirent {#define d_ino d_fileno /* Backward compatibility */u_long d_fileno; /* File number directory */u_short d_reclen; /* Length of this record */u_short d_namlen; /* Length of string in d_name */#if defined(_POSIX_SOURCE) && !defined(_DIRENT_SOURCE)long d_reserved1;long d_reserved2;u_long d_reserved3;u_long d_reserved4;#elselong d_ctime; /* Creation time */long d_mtime; /* Modification time */u_long d_size; /* File size */u_long d_attr; /* File attributes */#endif /*_POSIX_SOURCE*/char d_name[ MAXNAMLEN+1 ];};#if defined(_POSIX_SOURCE) && !defined(_DIRENT_SOURCE)typedef void *DIR;#else#if defined(_DIRENT_SOURCE) || defined(DEBUG)/* _dirlist, linked list of directory entries* only required within 'dirent.c'.*/struct _dirlist {long dl_ctime;long dl_mtime;u_long dl_size;u_long dl_size2;u_long dl_attr;char *dl_entry;struct _dirlist *dl_next;};#endif /*_DIRENT_SOURCE*/typedef struct _dirdesc {int dd_fd; /* File descriptor associated with directory */int dd_id; /* Uniquely identify open dir */long dd_loc; /* Offset in current buffer */long dd_size; /* Amount of data returned by getdirentries */char *dd_buf; /* Data buffer */int dd_len; /* Size of data buffer */long dd_seek; /* Magic cookie returned by getdirentries */void *dd_ddloc; /* Linked list of ddloc structs for telldir/seekdir *//* Extensions, USE AT OWN RISK */struct _dirlist *dd_contents;struct _dirlist *dd_current;/* End of extensions */} DIR;#endif /* _POSIX_SOURCE */#include <cdefs.h>__BEGIN_DECLSextern DIR *opendir __P((char *));extern int closedir __P((DIR *));extern struct dirent *readdir __P((DIR *));extern void rewinddir __P((DIR *));#ifndef _POSIX_SOURCEextern void seekdir __P((DIR *, long));extern long telldir __P((DIR *));extern void rewinddir __P((DIR *));extern int alphasort __P((const void *, const void *));extern int scandir __P(());extern int getdirentries __P((int, char *, int, long *));#endif /*_POSIX_SOURCE*/extern int IsHPFSFileSystem __P((const char *name));__END_DECLS#endif /*DIRENT_H_INCLUDED*/