main.c 834 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <stdio.h>
  2. #include <inttypes.h>
  3. #include <uv.h>
  4. uv_loop_t *loop;
  5. uv_process_t child_req;
  6. uv_process_options_t options;
  7. void on_exit(uv_process_t *req, int64_t exit_status, int term_signal) {
  8. fprintf(stderr, "Process exited with status %" PRId64 ", signal %d\n", exit_status, term_signal);
  9. uv_close((uv_handle_t*) req, NULL);
  10. }
  11. int main() {
  12. loop = uv_default_loop();
  13. char* args[3];
  14. args[0] = "mkdir";
  15. args[1] = "test-dir";
  16. args[2] = NULL;
  17. options.exit_cb = on_exit;
  18. options.file = "mkdir";
  19. options.args = args;
  20. int r;
  21. if ((r = uv_spawn(loop, &child_req, &options))) {
  22. fprintf(stderr, "%s\n", uv_strerror(r));
  23. return 1;
  24. } else {
  25. fprintf(stderr, "Launched process with ID %d\n", child_req.pid);
  26. }
  27. return uv_run(loop, UV_RUN_DEFAULT);
  28. }