1 #include <u.h> 2 #include <libc.h> 3 4 /* 5 * like fprint but be sure to deliver as a single write. 6 * (fprint uses a small write buffer.) 7 */ 8 void 9 xfprint(int fd, char *fmt, ...) 10 { 11 char *s; 12 va_list arg; 13 14 va_start(arg, fmt); 15 s = vsmprint(fmt, arg); 16 va_end(arg); 17 if(s == nil) 18 sysfatal("smprint: %r"); 19 write(fd, s, strlen(s)); 20 free(s); 21 } 22 23 void 24 main(int argc, char **argv) 25 { 26 int fd; 27 char dir[512]; 28 29 fd = open("/dev/acme/ctl", OWRITE); 30 if(fd < 0) 31 exits(0); 32 getwd(dir, 512); 33 if(dir[0]!=0 && dir[strlen(dir)-1]=='/') 34 dir[strlen(dir)-1] = 0; 35 xfprint(fd, "name %s/-%s\n", dir, argc > 1 ? argv[1] : "rc"); 36 xfprint(fd, "dumpdir %s\n", dir); 37 exits(0); 38 } 39