VAPOR3 3.9.4
Classes | Macros | Typedefs | Functions
direntWin32.h File Reference
#include <stdio.h>
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <wchar.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>

Go to the source code of this file.

Classes

struct  _wdirent
 
struct  _WDIR
 
struct  dirent
 
struct  DIR
 

Macros

#define _DIRENT_HAVE_D_TYPE
 
#define _DIRENT_HAVE_D_NAMLEN
 
#define FILE_ATTRIBUTE_DEVICE   0x40
 
#define S_IFMT   _S_IFMT /* File type mask */
 
#define S_IFDIR   _S_IFDIR /* Directory */
 
#define S_IFCHR   _S_IFCHR /* Character device */
 
#define S_IFFIFO   _S_IFFIFO /* Pipe */
 
#define S_IFREG   _S_IFREG /* Regular file */
 
#define S_IREAD   _S_IREAD /* Read permission */
 
#define S_IWRITE   _S_IWRITE /* Write permission */
 
#define S_IEXEC   _S_IEXEC /* Execute permission */
 
#define S_IFIFO   _S_IFIFO /* Pipe */
 
#define S_IFBLK   0 /* Block device */
 
#define S_IFLNK   0 /* Link */
 
#define S_IFSOCK   0 /* Socket */
 
#define PATH_MAX   MAX_PATH
 
#define FILENAME_MAX   MAX_PATH
 
#define NAME_MAX   FILENAME_MAX
 
#define DT_UNKNOWN   0
 
#define DT_REG   S_IFREG
 
#define DT_DIR   S_IFDIR
 
#define DT_FIFO   S_IFIFO
 
#define DT_SOCK   S_IFSOCK
 
#define DT_CHR   S_IFCHR
 
#define DT_BLK   S_IFBLK
 
#define DT_LNK   S_IFLNK
 
#define IFTODT(mode)   ((mode)&S_IFMT)
 
#define DTTOIF(type)   (type)
 
#define S_ISFIFO(mode)   (((mode)&S_IFMT) == S_IFIFO)
 
#define S_ISDIR(mode)   (((mode)&S_IFMT) == S_IFDIR)
 
#define S_ISREG(mode)   (((mode)&S_IFMT) == S_IFREG)
 
#define S_ISLNK(mode)   (((mode)&S_IFMT) == S_IFLNK)
 
#define S_ISSOCK(mode)   (((mode)&S_IFMT) == S_IFSOCK)
 
#define S_ISCHR(mode)   (((mode)&S_IFMT) == S_IFCHR)
 
#define S_ISBLK(mode)   (((mode)&S_IFMT) == S_IFBLK)
 
#define _D_EXACT_NAMLEN(p)   ((p)->d_namlen)
 
#define _D_ALLOC_NAMLEN(p)   (PATH_MAX)
 
#define wdirent   _wdirent
 
#define WDIR   _WDIR
 
#define wopendir   _wopendir
 
#define wreaddir   _wreaddir
 
#define wclosedir   _wclosedir
 
#define wrewinddir   _wrewinddir
 

Typedefs

typedef struct _wdirent _wdirent
 
typedef struct _WDIR _WDIR
 
typedef struct dirent dirent
 
typedef struct DIR DIR
 

Functions

static _WDIR_wopendir (const wchar_t *dirname)
 
static struct _wdirent_wreaddir (_WDIR *dirp)
 
static int _wclosedir (_WDIR *dirp)
 
static void _wrewinddir (_WDIR *dirp)
 
static DIRopendir (const char *dirname)
 
static struct direntreaddir (DIR *dirp)
 
static int closedir (DIR *dirp)
 
static void rewinddir (DIR *dirp)
 
static WIN32_FIND_DATAW * dirent_first (_WDIR *dirp)
 
static WIN32_FIND_DATAW * dirent_next (_WDIR *dirp)
 
static int dirent_mbstowcs_s (size_t *pReturnValue, wchar_t *wcstr, size_t sizeInWords, const char *mbstr, size_t count)
 
static int dirent_wcstombs_s (size_t *pReturnValue, char *mbstr, size_t sizeInBytes, const wchar_t *wcstr, size_t count)
 
static void dirent_set_errno (int error)
 

Macro Definition Documentation

◆ _D_ALLOC_NAMLEN

#define _D_ALLOC_NAMLEN (   p)    (PATH_MAX)

Definition at line 158 of file direntWin32.h.

◆ _D_EXACT_NAMLEN

#define _D_EXACT_NAMLEN (   p)    ((p)->d_namlen)

Definition at line 155 of file direntWin32.h.

◆ _DIRENT_HAVE_D_NAMLEN

#define _DIRENT_HAVE_D_NAMLEN

Definition at line 58 of file direntWin32.h.

◆ _DIRENT_HAVE_D_TYPE

#define _DIRENT_HAVE_D_TYPE

Definition at line 55 of file direntWin32.h.

◆ DT_BLK

#define DT_BLK   S_IFBLK

Definition at line 133 of file direntWin32.h.

◆ DT_CHR

#define DT_CHR   S_IFCHR

Definition at line 132 of file direntWin32.h.

◆ DT_DIR

#define DT_DIR   S_IFDIR

Definition at line 129 of file direntWin32.h.

◆ DT_FIFO

#define DT_FIFO   S_IFIFO

Definition at line 130 of file direntWin32.h.

◆ DT_LNK

#define DT_LNK   S_IFLNK

Definition at line 134 of file direntWin32.h.

◆ DT_REG

#define DT_REG   S_IFREG

Definition at line 128 of file direntWin32.h.

◆ DT_SOCK

#define DT_SOCK   S_IFSOCK

Definition at line 131 of file direntWin32.h.

◆ DT_UNKNOWN

#define DT_UNKNOWN   0

Definition at line 127 of file direntWin32.h.

◆ DTTOIF

#define DTTOIF (   type)    (type)

Definition at line 138 of file direntWin32.h.

◆ FILE_ATTRIBUTE_DEVICE

#define FILE_ATTRIBUTE_DEVICE   0x40

Definition at line 62 of file direntWin32.h.

◆ FILENAME_MAX

#define FILENAME_MAX   MAX_PATH

Definition at line 120 of file direntWin32.h.

◆ IFTODT

#define IFTODT (   mode)    ((mode)&S_IFMT)

Definition at line 137 of file direntWin32.h.

◆ NAME_MAX

#define NAME_MAX   FILENAME_MAX

Definition at line 123 of file direntWin32.h.

◆ PATH_MAX

#define PATH_MAX   MAX_PATH

Definition at line 117 of file direntWin32.h.

◆ S_IEXEC

#define S_IEXEC   _S_IEXEC /* Execute permission */

Definition at line 88 of file direntWin32.h.

◆ S_IFBLK

#define S_IFBLK   0 /* Block device */

Definition at line 94 of file direntWin32.h.

◆ S_IFCHR

#define S_IFCHR   _S_IFCHR /* Character device */

Definition at line 73 of file direntWin32.h.

◆ S_IFDIR

#define S_IFDIR   _S_IFDIR /* Directory */

Definition at line 70 of file direntWin32.h.

◆ S_IFFIFO

#define S_IFFIFO   _S_IFFIFO /* Pipe */

Definition at line 76 of file direntWin32.h.

◆ S_IFIFO

#define S_IFIFO   _S_IFIFO /* Pipe */

Definition at line 91 of file direntWin32.h.

◆ S_IFLNK

#define S_IFLNK   0 /* Link */

Definition at line 97 of file direntWin32.h.

◆ S_IFMT

#define S_IFMT   _S_IFMT /* File type mask */

Definition at line 67 of file direntWin32.h.

◆ S_IFREG

#define S_IFREG   _S_IFREG /* Regular file */

Definition at line 79 of file direntWin32.h.

◆ S_IFSOCK

#define S_IFSOCK   0 /* Socket */

Definition at line 100 of file direntWin32.h.

◆ S_IREAD

#define S_IREAD   _S_IREAD /* Read permission */

Definition at line 82 of file direntWin32.h.

◆ S_ISBLK

#define S_ISBLK (   mode)    (((mode)&S_IFMT) == S_IFBLK)

Definition at line 152 of file direntWin32.h.

◆ S_ISCHR

#define S_ISCHR (   mode)    (((mode)&S_IFMT) == S_IFCHR)

Definition at line 151 of file direntWin32.h.

◆ S_ISDIR

#define S_ISDIR (   mode)    (((mode)&S_IFMT) == S_IFDIR)

Definition at line 147 of file direntWin32.h.

◆ S_ISFIFO

#define S_ISFIFO (   mode)    (((mode)&S_IFMT) == S_IFIFO)

Definition at line 146 of file direntWin32.h.

◆ S_ISLNK

#define S_ISLNK (   mode)    (((mode)&S_IFMT) == S_IFLNK)

Definition at line 149 of file direntWin32.h.

◆ S_ISREG

#define S_ISREG (   mode)    (((mode)&S_IFMT) == S_IFREG)

Definition at line 148 of file direntWin32.h.

◆ S_ISSOCK

#define S_ISSOCK (   mode)    (((mode)&S_IFMT) == S_IFSOCK)

Definition at line 150 of file direntWin32.h.

◆ S_IWRITE

#define S_IWRITE   _S_IWRITE /* Write permission */

Definition at line 85 of file direntWin32.h.

◆ wclosedir

#define wclosedir   _wclosedir

Definition at line 193 of file direntWin32.h.

◆ WDIR

#define WDIR   _WDIR

Definition at line 190 of file direntWin32.h.

◆ wdirent

#define wdirent   _wdirent

Definition at line 189 of file direntWin32.h.

◆ wopendir

#define wopendir   _wopendir

Definition at line 191 of file direntWin32.h.

◆ wreaddir

#define wreaddir   _wreaddir

Definition at line 192 of file direntWin32.h.

◆ wrewinddir

#define wrewinddir   _wrewinddir

Definition at line 194 of file direntWin32.h.

Typedef Documentation

◆ _WDIR

typedef struct _WDIR _WDIR

Definition at line 181 of file direntWin32.h.

◆ _wdirent

typedef struct _wdirent _wdirent

Definition at line 172 of file direntWin32.h.

◆ DIR

typedef struct DIR DIR

Definition at line 210 of file direntWin32.h.

◆ dirent

typedef struct dirent dirent

Definition at line 204 of file direntWin32.h.

Function Documentation

◆ _wclosedir()

static int _wclosedir ( _WDIR dirp)
static

Definition at line 384 of file direntWin32.h.

References dirent_set_errno(), _WDIR::handle, and _WDIR::patt.

Referenced by _wopendir(), and closedir().

◆ _wopendir()

static _WDIR * _wopendir ( const wchar_t *  dirname)
static

Definition at line 232 of file direntWin32.h.

References _wclosedir(), _WDIR::cached, dirent_first(), dirent_set_errno(), _WDIR::handle, and _WDIR::patt.

Referenced by opendir().

◆ _wreaddir()

static struct _wdirent * _wreaddir ( _WDIR dirp)
static

◆ _wrewinddir()

static void _wrewinddir ( _WDIR dirp)
static

Definition at line 416 of file direntWin32.h.

References dirent_first(), and _WDIR::handle.

Referenced by rewinddir().

◆ closedir()

static int closedir ( DIR dirp)
static

Definition at line 624 of file direntWin32.h.

References _wclosedir(), dirent_set_errno(), and DIR::wdirp.

◆ dirent_first()

static WIN32_FIND_DATAW * dirent_first ( _WDIR dirp)
static

Definition at line 428 of file direntWin32.h.

References _WDIR::cached, _WDIR::data, _WDIR::handle, and _WDIR::patt.

Referenced by _wopendir(), and _wrewinddir().

◆ dirent_mbstowcs_s()

static int dirent_mbstowcs_s ( size_t *  pReturnValue,
wchar_t *  wcstr,
size_t  sizeInWords,
const char *  mbstr,
size_t  count 
)
static

Definition at line 653 of file direntWin32.h.

Referenced by opendir().

◆ dirent_next()

static WIN32_FIND_DATAW * dirent_next ( _WDIR dirp)
static

Definition at line 448 of file direntWin32.h.

References _WDIR::cached, _WDIR::data, and _WDIR::handle.

Referenced by _wreaddir(), and readdir().

◆ dirent_set_errno()

static void dirent_set_errno ( int  error)
static

Definition at line 734 of file direntWin32.h.

Referenced by _wclosedir(), _wopendir(), closedir(), and opendir().

◆ dirent_wcstombs_s()

static int dirent_wcstombs_s ( size_t *  pReturnValue,
char *  mbstr,
size_t  sizeInBytes,
const wchar_t *  wcstr,
size_t  count 
)
static

Definition at line 693 of file direntWin32.h.

Referenced by readdir().

◆ opendir()

static DIR * opendir ( const char *  dirname)
static

Definition at line 481 of file direntWin32.h.

References _wopendir(), dirent_mbstowcs_s(), dirent_set_errno(), PATH_MAX, and DIR::wdirp.

◆ readdir()

static struct dirent * readdir ( DIR dirp)
static

◆ rewinddir()

static void rewinddir ( DIR dirp)
static

Definition at line 646 of file direntWin32.h.

References _wrewinddir(), and DIR::wdirp.