1 /* classes: h_files */ 2 3 #ifndef SCM_WIN32_DIRENT_H 4 #define SCM_WIN32_DIRENT_H 5 6 /* Copyright (C) 2001 Free Software Foundation, Inc. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2, or (at your option) 11 * any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this software; see the file COPYING. If not, write to 20 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 21 * Boston, MA 02111-1307 USA 22 * 23 * As a special exception, the Free Software Foundation gives permission 24 * for additional uses of the text contained in its release of GUILE. 25 * 26 * The exception is that, if you link the GUILE library with other files 27 * to produce an executable, this does not by itself cause the 28 * resulting executable to be covered by the GNU General Public License. 29 * Your use of that executable is in no way restricted on account of 30 * linking the GUILE library code into it. 31 * 32 * This exception does not however invalidate any other reasons why 33 * the executable file might be covered by the GNU General Public License. 34 * 35 * This exception applies only to the code released by the 36 * Free Software Foundation under the name GUILE. If you copy 37 * code from other Free Software Foundation releases into a copy of 38 * GUILE, as the General Public License permits, the exception does 39 * not apply to the code that you add in this way. To avoid misleading 40 * anyone as to the status of such modified files, you must delete 41 * this exception notice from them. 42 * 43 * If you write modifications of your own for GUILE, it is your choice 44 * whether to permit this exception to apply to your modifications. 45 * If you do not wish that, delete this exception notice. */ 46 47 /* Directory stream type. 48 The miscellaneous Unix `readdir' implementations read directory data 49 into a buffer and return `struct dirent *' pointers into it. */ 50 51 #include <sys/types.h> 52 53 #ifdef __cplusplus 54 extern "C" { 55 #endif 56 57 struct dirent 58 { 59 long d_ino; 60 off_t d_off; 61 unsigned short int d_reclen; 62 unsigned char d_type; 63 char d_name[256]; 64 }; 65 66 #define d_fileno d_ino /* Backwards compatibility. */ 67 68 /* This is the data type of directory stream objects. 69 The actual structure is opaque to users. */ 70 71 typedef struct dirstream DIR; 72 73 DIR * opendir (const char * name); 74 struct dirent * readdir (DIR * dir); 75 int closedir (DIR * dir); 76 void rewinddir (DIR * dir); 77 void seekdir (DIR * dir, off_t offset); 78 off_t telldir (DIR * dir); 79 int dirfd (DIR * dir); 80 81 #define S_ISDIR(st_mode) (st_mode & S_IFDIR) 82 #define S_ISREG(st_mode) (st_mode & S_IFREG) 83 84 #ifdef __cplusplus 85 } 86 #endif 87 88 #endif /* SCM_WIN32_DIRENT_H */ 89