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