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
xfprint(int fd,char * fmt,...)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
main(int argc,char ** argv)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