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