71 lines
1.5 KiB
C
71 lines
1.5 KiB
C
/* Copyright (C) 1986-1994 by Digital Mars. $Revision: 1.1.1.1 $ */
|
|
|
|
#if __SC__ || __RCC__
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifndef __SYS_DIRENT_H
|
|
#define __SYS_DIRENT_H 1
|
|
|
|
#if __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#if __OS2__ && __INTSIZE == 4
|
|
#define __CLIB __stdcall
|
|
#else
|
|
#define __CLIB __cdecl
|
|
#endif
|
|
|
|
#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
|
|
#define MAXNAMLEN 512 /* maximum filename length */
|
|
#define DIRBUF 2048 /* buffer size for fs-indep. dirs */
|
|
#endif
|
|
|
|
#include <sys/types.h>
|
|
|
|
typedef struct /* #ifdefs protect opaque type's members */
|
|
{
|
|
int dd_fd; /* file descriptor */
|
|
int dd_loc; /* location offset in block */
|
|
int dd_size; /* amount of valid data */
|
|
char *dd_buf; /* directory block */
|
|
} DIR; /* stream data from opendir() */
|
|
|
|
DIR * __CLIB opendir(const char *);
|
|
struct dirent * __CLIB readdir(DIR *);
|
|
|
|
#if !defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE)
|
|
long __CLIB telldir(DIR *);
|
|
void __CLIB seekdir(DIR *,long);
|
|
#endif
|
|
|
|
void __CLIB rewinddir(DIR *);
|
|
int __CLIB closedir(DIR *);
|
|
|
|
#if !defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE)
|
|
#define rewinddir(dirp) seekdir(dirp,0L)
|
|
#endif
|
|
|
|
/* File-system independent directory entry. */
|
|
struct dirent {
|
|
ino_t d_ino; /* "inode number" of entry */
|
|
off_t d_off; /* offset of disk directory entry */
|
|
unsigned short d_reclen; /* length of this record */
|
|
char d_name[1]; /* name of file */
|
|
};
|
|
|
|
typedef struct dirent dirent_t;
|
|
|
|
#if !defined(_POSIX_SOURCE)
|
|
int __CLIB getdents(int, struct dirent *, unsigned);
|
|
#endif
|
|
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|