1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include <stdlib.h> #include <sys/wait.h> #include <unistd.h> int system(const char *command) { if (!command) { return NULL; } int pid = fork(); if (0 == pid) { char *argv[2]; argv[0] = "/sh"; argv[1] = (char *)command; execv("/sh", argv); } // FIXME: Use waitpid int rc; (void)wait(&rc); return rc; }