ref: 91b19a19838036c21c25c85ec89e4c986f9a35aa
dir: /sys/src/cmd/9nfs/system.c/
#include <u.h> #include <libc.h> Waitmsg* system(char *name, char **argv) { char err[ERRMAX]; Waitmsg *w; int pid; switch(pid = fork()){ /* assign = */ case -1: return nil; case 0: exec(name, argv); errstr(err, sizeof err); _exits(err); } for(;;){ w = wait(); if(w == nil) break; if(w->pid == pid) return w; free(w); } return nil; } Waitmsg* systeml(char *name, ...) { return system(name, &name+1); }