Not sure quite how these changed seeing as they're to go shortly I just want to clear...
[reactos.git] / reactos / include / crtdll / dir.h
1 /*
2 * dir.h
3 *
4 * Functions for working with directories and path names.
5 *
6 * This file is part of the Mingw32 package.
7 *
8 * Contributors:
9 * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * $Revision: 1.4 $
22 * $Author: robd $
23 * $Date: 2002/11/24 18:09:56 $
24 *
25 */
26
27 #ifndef __STRICT_ANSI__
28
29 #ifndef _DIR_H_
30 #define _DIR_H_
31
32 #include <crtdll/stdio.h> /* To get FILENAME_MAX... ugly. */
33 #include <crtdll/sys/types.h> /* To get time_t. */
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 /*
40 * Attributes of files as returned by _findfirst et al.
41 */
42 #define _A_NORMAL 0x00000000
43 #define _A_RDONLY 0x00000001
44 #define _A_HIDDEN 0x00000002
45 #define _A_SYSTEM 0x00000004
46 #define _A_VOLID 0x00000008
47 #define _A_SUBDIR 0x00000010
48 #define _A_ARCH 0x00000020
49
50 #ifndef _FSIZE_T_DEFINED
51 typedef unsigned long _fsize_t;
52 #define _FSIZE_T_DEFINED
53 #endif
54
55 /*
56 * The following structure is filled in by _findfirst or _findnext when
57 * they succeed in finding a match.
58 */
59 struct _finddata_t
60 {
61 unsigned attrib; /* Attributes, see constants above. */
62 time_t time_create;
63 time_t time_access; /* always midnight local time */
64 time_t time_write;
65 _fsize_t size;
66 char name[FILENAME_MAX]; /* may include spaces. */
67 };
68
69 /*
70 * Functions for searching for files. _findfirst returns -1 if no match
71 * is found. Otherwise it returns a handle to be used in _findnext and
72 * _findclose calls. _findnext also returns -1 if no match could be found,
73 * and 0 if a match was found. Call _findclose when you are finished.
74 */
75 int _findclose (int nHandle);
76 int _findfirst (const char* szFilespec, struct _finddata_t* find);
77 int _findnext (int nHandle, struct _finddata_t* find);
78
79 int _chdir (const char* szPath);
80 char* _getcwd (char* caBuffer, int nBufferSize);
81 int _mkdir (const char* szPath);
82 char* _mktemp (char* szTemplate);
83 int _rmdir (const char* szPath);
84
85
86 #ifndef _NO_OLDNAMES
87
88 int chdir (const char* szPath);
89 char* getcwd (char* caBuffer, int nBufferSize);
90 int mkdir (const char* szPath);
91 char* mktemp (char* szTemplate);
92 int rmdir (const char* szPath);
93
94 #endif /* Not _NO_OLDNAMES */
95
96
97 #ifdef __cplusplus
98 }
99 #endif
100
101 #endif /* Not _DIR_H_ */
102
103 #endif /* Not __STRICT_ANSI__ */