diff options
Diffstat (limited to 'docs/code/spawn/main.c')
-rw-r--r-- | docs/code/spawn/main.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/code/spawn/main.c b/docs/code/spawn/main.c new file mode 100644 index 00000000..dedfe00c --- /dev/null +++ b/docs/code/spawn/main.c @@ -0,0 +1,36 @@ +#include <stdio.h> +#include <inttypes.h> + +#include <uv.h> + +uv_loop_t *loop; +uv_process_t child_req; +uv_process_options_t options; + +void on_exit(uv_process_t *req, int64_t exit_status, int term_signal) { + fprintf(stderr, "Process exited with status %" PRId64 ", signal %d\n", exit_status, term_signal); + uv_close((uv_handle_t*) req, NULL); +} + +int main() { + loop = uv_default_loop(); + + char* args[3]; + args[0] = "mkdir"; + args[1] = "test-dir"; + args[2] = NULL; + + options.exit_cb = on_exit; + options.file = "mkdir"; + options.args = args; + + int r; + if ((r = uv_spawn(loop, &child_req, &options))) { + fprintf(stderr, "%s\n", uv_strerror(r)); + return 1; + } else { + fprintf(stderr, "Launched process with ID %d\n", child_req.pid); + } + + return uv_run(loop, UV_RUN_DEFAULT); +} |