17#include "apr_arch_file_io.h"
21#include "apr_arch_inherit.h"
30# define BEOS_BLOCKING 1
32# define BEOS_BLOCKING 0
38#if !defined(BEOS) || !BEOS_BLOCKING
42# if defined(O_NONBLOCK)
44# elif defined(O_NDELAY)
46# elif defined(O_FNDELAY)
74#if !defined(BEOS) || !BEOS_BLOCKING
77# if defined(O_NONBLOCK)
79# elif defined(O_NDELAY)
81# elif defined(O_FNDELAY)
113 if (
thepipe->blocking != BLK_OFF) {
118 if (
thepipe->blocking != BLK_ON) {
144 (*file)->pool =
pool;
145 (*file)->eof_hit = 0;
146 (*file)->is_pipe = 1;
147 (*file)->blocking = BLK_UNKNOWN;
148 (*file)->timeout = -1;
149 (*file)->ungetchar = -1;
150 (*file)->filedes = *
dafile;
154 (*file)->buffered = 0;
156 (*file)->thlock =
NULL;
163#ifndef WAITIO_USES_POLL
167 (*file)->pollset =
NULL;
194 (*in)->blocking = BLK_ON;
196 (*in)->ungetchar = -1;
199 (*in)->thlock =
NULL;
201#ifndef WAITIO_USES_POLL
202 (*in)->pollset =
NULL;
208 (*out)->fname =
NULL;
209 (*out)->buffered = 0;
210 (*out)->blocking = BLK_ON;
212 (*out)->timeout = -1;
214 (*out)->thlock =
NULL;
216#ifndef WAITIO_USES_POLL
217 (*out)->pollset =
NULL;
APR Portability Routines.
apr_dbd_transaction_t int mode
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
const char int apr_pool_t * pool
apr_int32_t apr_fileperms_t
apr_file_t apr_int32_t apr_pool_t apr_pool_t * pool_out
const char apr_file_t * file
apr_file_t apr_int32_t blocking
const char apr_int32_t apr_fileperms_t perm
apr_file_t apr_int32_t apr_pool_t * pool_in
#define APR_FOPEN_NOCLEANUP
apr_int32_t apr_int32_t on
#define apr_pcalloc(p, size)
apr_os_file_t int register_cleanup
apr_size_t const char * filename
apr_int64_t apr_interval_time_t
static apr_status_t pipenonblock(apr_file_t *thepipe)
static apr_status_t file_pipe_create(apr_file_t **in, apr_file_t **out, apr_pool_t *pool_in, apr_pool_t *pool_out)
static apr_status_t pipeblock(apr_file_t *thepipe)
static void file_pipe_block(apr_file_t **in, apr_file_t **out, apr_int32_t blocking)
mode_t apr_unix_perms2mode(apr_fileperms_t perms)
apr_status_t apr_unix_file_cleanup(void *thefile)