/* * Copyright (c) 2022 Egor Tensin * This file is part of the "cimple" project. * For details, see https://github.com/egor-tensin/cimple. * Distributed under the MIT License. */ #ifndef __PROCESS_H__ #define __PROCESS_H__ #include struct process_output { int ec; unsigned char *data; size_t data_size; }; /* The exit code is only valid if the functions returns a non-negative number. */ int process_execute(const char *args[], const char *envp[], int *ec); /* Similarly, the contents of the process_output structure is only valid if the function returns a * non-negative number. * * In that case, you'll need to free the output. */ int process_execute_and_capture(const char *args[], const char *envp[], struct process_output *result); int process_output_create(struct process_output **); void process_output_destroy(struct process_output *); void process_output_dump(const struct process_output *); #endif