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