diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2007-01-31 18:49:40 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2007-01-31 18:49:40 +0000 |
commit | 8c8e5f6dccdd5ebdeb0be02ae969862c614cbf0a (patch) | |
tree | 3f4d00730be0daf071f8c573294ff84e70b7f81a /include/libiberty.h | |
parent | 9cde55ad2d4cb68ad61167e570f83894a1a04423 (diff) | |
download | cygnal-8c8e5f6dccdd5ebdeb0be02ae969862c614cbf0a.tar.gz cygnal-8c8e5f6dccdd5ebdeb0be02ae969862c614cbf0a.tar.bz2 cygnal-8c8e5f6dccdd5ebdeb0be02ae969862c614cbf0a.zip |
include/
* libiberty.h (PEX_STDERR_TO_PIPE): New define.
(PEX_BINARY_ERROR): New define.
(pex_read_err): New function.
libiberty/
* pex-common.h (struct pex_obj): New fields
stderr_pipe and read_err.
* pex-common.c (pex_init_common): Initialize
stderr_pipe.
(pex_run_in_environment): Add error checking
for PEX_STDERR_TO_PIPE. Create a pipe
for stderr if necessary.
(pex_read_err): New.
(pex_free): Close read_err.
* pexecute.txh: Document changes.
* functions.texi: Regenerated.
Diffstat (limited to 'include/libiberty.h')
-rw-r--r-- | include/libiberty.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/libiberty.h b/include/libiberty.h index 27291c988..cc6cce3d2 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -400,6 +400,19 @@ extern struct pex_obj *pex_init (int flags, const char *pname, PEX_BINARY_INPUT. */ #define PEX_BINARY_OUTPUT 0x20 +/* Capture stderr to a pipe. The output can be read by + calling pex_read_err and reading from the returned + FILE object. This flag may be specified only for + the last program in a pipeline. + + This flag is supported only on Unix and Windows. */ +#define PEX_STDERR_TO_PIPE 0x40 + +/* Capture stderr in binary mode. This flag is ignored + on Unix. */ +#define PEX_BINARY_ERROR 0x80 + + /* Execute one program. Returns NULL on success. On error returns an error string (typically just the name of a system call); the error string is statically allocated. @@ -521,6 +534,14 @@ extern FILE *pex_input_pipe (struct pex_obj *obj, int binary); extern FILE *pex_read_output (struct pex_obj *, int binary); +/* Read the standard error of the last program to be executed. + pex_run can not be called after this. BINARY should be non-zero if + the file should be opened in binary mode; this is ignored on Unix. + Returns NULL on error. Don't call fclose on the returned FILE; it + will be closed by pex_free. */ + +extern FILE *pex_read_err (struct pex_obj *, int binary); + /* Return exit status of all programs in VECTOR. COUNT indicates the size of VECTOR. The status codes in the vector are in the order of the calls to pex_run. Returns 0 on error, 1 on success. */ |