summaryrefslogtreecommitdiff
path: root/userland/libc/stdlib/system.c
blob: d951c5c817cb449f2b3deb551d293af4e8a8e3aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdlib.h>

int system(const char *command) {
  if (!command)
    return NULL;
  int pid = fork();
  if (0 == pid) {
    char *argv[2];
    argv[0] = "/sh";
    argv[1] = command;
    execv("/sh", argv);
  }
  // FIXME: Use waitpid
  int rc;
  (void)wait(&rc);
  return rc;
}