xref: /haiku/headers/posix/dirent.h (revision b671e9bbdbd10268a042b4f4cc4317ccd03d105e)
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*			fdopendir(int fd);
36 DIR*			opendir(const char* dirName);
37 struct dirent*	readdir(DIR* dir);
38 int				readdir_r(DIR* dir, struct dirent* entry,
39 					struct dirent** _result);
40 int				closedir(DIR* dir);
41 void			rewinddir(DIR* dir);
42 void 			seekdir(DIR* dir, long int position);
43 long int		telldir(DIR* dir);
44 int				dirfd(const DIR* dir);
45 
46 #ifdef __cplusplus
47 }
48 #endif
49 
50 #endif	/* _DIRENT_H */
51