17#include "apr_arch_file_io.h"
20#if APR_HAVE_SYS_SYSLIMITS_H
21#include <sys/syslimits.h>
42#define PATH_SEPARATOR '/'
88 (*new)->dirstruct =
dir;
90#if APR_HAS_THREADS && defined(_POSIX_THREAD_SAFE_FUNCTIONS) \
91 && !defined(READDIR_IS_THREAD_SAFE)
98 (
sizeof((*new)->entry->d_name) > 1
101 (*new)->entry =
NULL;
132#if !defined(BEOS) && defined(DT_SOCK)
149#if APR_HAS_THREADS && defined(_POSIX_THREAD_SAFE_FUNCTIONS) \
150 && !defined(READDIR_IS_THREAD_SAFE)
151#ifdef APR_USE_READDIR64_R
222#ifdef APR_USE_READDIR64_R
322 if (
dir[0] ==
'\0') {
369 (*dir)->dirstruct =
thedir;
const char apr_size_t len
APR Portability Routines.
request_rec int int apr_table_t const char * path
#define APR_STATUS_IS_EEXIST(s)
apr_dbd_transaction_t int mode
const char int apr_pool_t * pool
apr_int32_t apr_dir_t * thedir
apr_int32_t apr_fileperms_t
const char apr_int32_t apr_fileperms_t perm
const char apr_int32_t wanted
#define apr_pcalloc(p, size)
static apr_status_t dir_cleanup(void *thedir)
static char * path_remove_last_component(const char *path, apr_pool_t *pool)
apr_status_t apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted, apr_dir_t *thedir)
apr_status_t apr_dir_make(const char *path, apr_fileperms_t perm, apr_pool_t *pool)
apr_status_t apr_dir_remove(const char *path, apr_pool_t *pool)
apr_status_t apr_dir_close(apr_dir_t *thedir)
apr_status_t apr_dir_open(apr_dir_t **new, const char *dirname, apr_pool_t *pool)
apr_status_t apr_dir_make_recursive(const char *path, apr_fileperms_t perm, apr_pool_t *pool)
static const char * path_canonicalize(const char *path, apr_pool_t *pool)
apr_status_t apr_os_dir_get(apr_os_dir_t **thedir, apr_dir_t *dir)
apr_status_t apr_dir_rewind(apr_dir_t *thedir)
apr_status_t apr_os_dir_put(apr_dir_t **dir, apr_os_dir_t *thedir, apr_pool_t *pool)
mode_t apr_unix_perms2mode(apr_fileperms_t perms)