20#include "apr_arch_threadproc.h"
21#include "apr_arch_file_io.h"
22#include "apr_private.h"
51 (*new)->parent_in =
NULL;
52 (*new)->child_in =
NULL;
53 (*new)->parent_out =
NULL;
54 (*new)->child_out =
NULL;
55 (*new)->parent_err =
NULL;
56 (*new)->child_err =
NULL;
57 (*new)->currdir =
NULL;
59 (*new)->detached =
FALSE;
226 if ((pid =
fork()) < 0) {
299 const char *
const *
args,
300 const char *
const *
env,
551 switch (
codes.codeTerminate) {
const char apr_size_t len
APR Miscellaneous library routines.
APR general purpose library routines.
APR Portability Routines.
APR Thread and Process Library.
static apr_file_t no_file
#define APR_CHILD_NOTDONE
#define APR_STATUS_IS_ENOENT(s)
apr_bucket apr_bucket_brigade * a
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
const char apr_fileperms_t perms
apr_array_header_t ** result
int strcasecmp(const char *a, const char *b)
char const *const char const *const ** env
apr_status_t() apr_perms_setfn_t(void *object, apr_fileperms_t perms, apr_uid_t uid, apr_gid_t gid)
const char const char * password
apr_int32_t apr_int32_t apr_int32_t err
apr_file_t apr_file_t * parent_out
apr_perms_setfn_t * perms_set_fn
const char const char *const const char *const apr_procattr_t * attr
void() apr_child_errfn_t(apr_pool_t *proc, apr_status_t err, const char *description)
apr_child_errfn_t * errfn
int apr_exit_why_e * exitwhy
apr_file_t apr_file_t * parent_in
const char const char *const * args
int apr_exit_why_e apr_wait_how_e waithow
apr_file_t apr_file_t * parent_err
apr_status_t apr_proc_detach(int daemonize)
static char * double_quotes(apr_pool_t *pool, const char *str)
static void proces_result_codes(RESULTCODES codes, int *exitcode, apr_exit_why_e *exitwhy)