diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-10-26 16:45:12 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-10-26 16:45:12 (GMT) |
commit | dd1df8d8538f275b17e0d9d50dca19f4d44595fd (patch) | |
tree | 624bc07023b33668147eaa9097279c6fc92b4e48 /xpa/xlaunch.h | |
parent | 79d64f400391ce81b4eda73977cb40099256b348 (diff) | |
parent | 6054f36bb658916bd231b9002efb94444e2871c8 (diff) | |
download | blt-dd1df8d8538f275b17e0d9d50dca19f4d44595fd.zip blt-dd1df8d8538f275b17e0d9d50dca19f4d44595fd.tar.gz blt-dd1df8d8538f275b17e0d9d50dca19f4d44595fd.tar.bz2 |
Merge commit '6054f36bb658916bd231b9002efb94444e2871c8' as 'xpa'
Diffstat (limited to 'xpa/xlaunch.h')
-rw-r--r-- | xpa/xlaunch.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/xpa/xlaunch.h b/xpa/xlaunch.h new file mode 100644 index 0000000..2c20cb8 --- /dev/null +++ b/xpa/xlaunch.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1999-2003 Smithsonian Astrophysical Observatory + */ + +/* + * + * xlaunch.h -- declarations for launching a program + * + */ + +#ifndef __xlaunch_h +#define __xlaunch_h + +#if HAVE_CONFIG_H +#include <conf.h> +#endif + +#include <stdio.h> +#include <errno.h> +#include <signal.h> +#include <fcntl.h> +#include <sys/time.h> +#include <sys/stat.h> +#if HAVE_STRING_H +#include <string.h> +#endif +#if HAVE_STRINGS_H +#include <strings.h> +#endif +#if HAVE_MALLOC_H +#include <malloc.h> +#endif +#if HAVE_UNISTD_H +#include <unistd.h> +#endif +#if HAVE_POSIX_SPAWN +#include <spawn.h> +#endif +#include <xport.h> +#include <word.h> +#include <xalloc.h> +#include <prsetup.h> + +#define LAUNCH_ARGS 1024 + +#define LAUNCH_SPACE '\001' + +/* for fork/exec, one of these is required to specify the technique to be used + by the parent when determining if the child started successfully */ +#if !defined(LAUNCH_USE_PIPE) && !defined(LAUNCH_USE_WAITPID) +#define LAUNCH_USE_PIPE 1 +#endif +/* ... but not both */ +#if defined(LAUNCH_USE_PIPE) && defined(LAUNCH_USE_WAITPID) +#error "LAUNCH_USE_PIPE and LAUNCH_USE_WAITPID are mutually exclusive" +#endif + +#ifndef LAUNCH_WAIT_TRIES +#define LAUNCH_WAIT_TRIES 100 +#endif +#ifndef LAUNCH_WAIT_MSEC +#define LAUNCH_WAIT_MSEC 5000 +#endif + +#if HAVE_MINGW32|HAVE_CYGWIN +#define HAVE_SPAWNVP 1 +#endif + +#if HAVE_MINGW32 +/* for now, ensure that MinGW utilizes spawnvp() */ +#define LAUNCH_DEFAULT_WHICH 3 +#elif HAVE_POSIX_SPAWN +/* use posix_spawn if possible (required for OS X 10.5) */ +#define LAUNCH_DEFAULT_WHICH 2 +#else +/* use our home-grown version */ +#define LAUNCH_DEFAULT_WHICH 1 +#endif + +_PRbeg + +int Launch _PRx((char *cmdstring, int wait, char **stdfiles, int *pipes)); +pid_t LaunchPid _PRx((void)); + +_PRend + +#endif |