ref: 361b65e4df0b4a3562a6e57b0f7b8009c59c3f2b
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); }