Synesis Software

dirent.h

Go to the documentation of this file.
00001 /* /////////////////////////////////////////////////////////////////////////////
00002  * File:    dirent.h
00003  *
00004  * Purpose: Declaration of the opendir() API functions and types for the
00005  *          Win32 platform.
00006  *
00007  * Created: 19th October 2002
00008  * Updated: 22nd April 2008
00009  *
00010  * Home:    http://synesis.com.au/software/
00011  *
00012  * Copyright (c) 2002-2008, Matthew Wilson and Synesis Software
00013  * All rights reserved.
00014  *
00015  * Redistribution and use in source and binary forms, with or without
00016  * modification, are permitted provided that the following conditions are met:
00017  *
00018  * - Redistributions of source code must retain the above copyright notice, this
00019  *   list of conditions and the following disclaimer.
00020  * - Redistributions in binary form must reproduce the above copyright notice,
00021  *   this list of conditions and the following disclaimer in the documentation
00022  *   and/or other materials provided with the distribution.
00023  * - Neither the names of Matthew Wilson and Synesis Software nor the names of
00024  *   any contributors may be used to endorse or promote products derived from
00025  *   this software without specific prior written permission.
00026  *
00027  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00028  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00029  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00030  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00031  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00032  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00033  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00034  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00035  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00036  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00037  * POSSIBILITY OF SUCH DAMAGE.
00038  *
00039  * ////////////////////////////////////////////////////////////////////////// */
00040 
00041 
00047 #ifndef SYNSOFT_UNIXEM_INCL_H_DIRENT
00048 #define SYNSOFT_UNIXEM_INCL_H_DIRENT
00049 
00050 #ifndef UNIXEM_DOCUMENTATION_SKIP_SECTION
00051 # define SYNSOFT_UNIXEM_VER_H_DIRENT_MAJOR      3
00052 # define SYNSOFT_UNIXEM_VER_H_DIRENT_MINOR      3
00053 # define SYNSOFT_UNIXEM_VER_H_DIRENT_REVISION   1
00054 # define SYNSOFT_UNIXEM_VER_H_DIRENT_EDIT       30
00055 #endif /* !UNIXEM_DOCUMENTATION_SKIP_SECTION */
00056 
00057 /* ////////////////////////////////////////////////////////////////////////// */
00058 
00069 /* ////////////////////////////////////////////////////////////////////////// */
00070 
00071 #ifndef _WIN32
00072 # error This file is only currently defined for compilation on Win32 systems
00073 #endif /* _WIN32 */
00074 
00075 /* /////////////////////////////////////////////////////////////////////////////
00076  * Includes
00077  */
00078 
00079 #include <stddef.h>
00080 
00081 /* /////////////////////////////////////////////////////////////////////////////
00082  * Constants and definitions
00083  */
00084 
00085 #ifndef NAME_MAX
00086 # define NAME_MAX   (260)   
00087 #endif /* !NAME_MAX */
00088 
00089 /* /////////////////////////////////////////////////////////////////////////////
00090  * Typedefs
00091  */
00092 
00093 typedef struct dirent_dir   DIR; 
00094 typedef struct wdirent_dir  wDIR; 
00098 struct dirent
00099 {
00100     char    d_name[NAME_MAX + 1];      
00101     int     d_mode;
00102 };
00103 
00106 struct wdirent
00107 {
00108     wchar_t d_name[NAME_MAX + 1];   
00109     int     d_mode;
00110 };
00111 
00112 /* /////////////////////////////////////////////////////////////////////////////
00113  * API functions
00114  */
00115 
00116 #ifdef __cplusplus
00117 extern "C" {
00118 #endif /* __cplusplus */
00119 
00130 DIR* opendir(char const* name);
00133 wDIR* wopendir(wchar_t const* name);
00134 
00143 int closedir(DIR* dir);
00146 int wclosedir(wDIR* dir);
00147 
00155 void rewinddir(DIR* dir);
00158 void wrewinddir(wDIR* dir);
00159 
00168 struct dirent*  readdir(DIR* dir);
00171 struct wdirent* wreaddir(wDIR* dir);
00172 
00173 
00174 #ifdef __cplusplus
00175 }
00176 #endif /* __cplusplus */
00177 
00178 /* ////////////////////////////////////////////////////////////////////////// */
00179 
00182 /* ////////////////////////////////////////////////////////////////////////// */
00183 
00184 #endif /* SYNSOFT_UNIXEM_INCL_H_DIRENT */
00185 
00186 /* ////////////////////////////////////////////////////////////////////////// */

UNIX Emulation for Win32 Libraries documentation © Synesis Software Pty Ltd, 2002-2007