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