xref: /haiku/headers/posix/dirent.h (revision 893988af824e65e49e55f517b157db8386e8002b)
1 /*
2  * Copyright 2002-2008, Haiku Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _DIRENT_H
6 #define _DIRENT_H
7 
8 
9 #include <sys/types.h>
10 
11 
12 typedef struct dirent {
13 	dev_t			d_dev;		/* device */
14 	dev_t			d_pdev;		/* parent device (only for queries) */
15 	ino_t			d_ino;		/* inode number */
16 	ino_t			d_pino;		/* parent inode (only for queries) */
17 	unsigned short	d_reclen;	/* length of this record, not the name */
18 	char			d_name[1];	/* name of the entry (null byte terminated) */
19 } dirent_t;
20 
21 typedef struct __DIR DIR;
22 
23 #ifndef MAXNAMLEN
24 #	ifdef  NAME_MAX
25 #		define MAXNAMLEN NAME_MAX
26 #	else
27 #		define MAXNAMLEN 256
28 #	endif
29 #endif
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 DIR				*opendir(const char *dirname);
36 struct dirent	*readdir(DIR *dir);
37 int				readdir_r(DIR *dir, struct dirent *entry, struct dirent **_result);
38 int				closedir(DIR *dir);
39 void			rewinddir(DIR *dir);
40 void 			seekdir(DIR *dir, long int loc);
41 long int		telldir(DIR *);
42 
43 /* Non-POSIX extension to get the FD out of the private DIR */
44 int				dirfd(const DIR *dir);
45 
46 #ifdef __cplusplus
47 }
48 #endif
49 
50 #endif	/* _DIRENT_H */
51