Add command execution with redirection

Expose command execution with pipes to stdin, stdout and stderr.

This will allow to read the result of adb commands.
This commit is contained in:
Romain Vimont
2020-11-14 22:12:07 +01:00
parent 207082977a
commit eaf4afaad9
3 changed files with 265 additions and 43 deletions

View File

@@ -18,6 +18,7 @@
# define NO_EXIT_CODE -1u // max value as unsigned
typedef HANDLE process_t;
typedef DWORD exit_code_t;
typedef HANDLE pipe_t;
#else
@@ -29,6 +30,7 @@
# define NO_EXIT_CODE -1
typedef pid_t process_t;
typedef int exit_code_t;
typedef int pipe_t;
#endif
@@ -42,6 +44,14 @@ enum process_result {
enum process_result
process_execute(const char *const argv[], process_t *process);
enum process_result
process_execute_redirect(const char *const argv[], process_t *process,
pipe_t *pipe_stdin, pipe_t *pipe_stdout,
pipe_t *pipe_stderr);
bool
process_terminate(process_t pid);
// kill the process
bool
process_terminate(process_t pid);
@@ -83,4 +93,10 @@ get_local_file_path(const char *name);
bool
is_regular_file(const char *path);
ssize_t
read_pipe(pipe_t pipe, char *data, size_t len);
void
close_pipe(pipe_t pipe);
#endif