1 #include <u.h>
2 #include <libc.h>
3
4 /*
5 * based on libthread's threadsetname, but drags in less library code.
6 * actually just sets the arguments displayed.
7 */
8 void
procsetname(char * fmt,...)9 procsetname(char *fmt, ...)
10 {
11 int fd;
12 char *cmdname;
13 char buf[128];
14 va_list arg;
15
16 va_start(arg, fmt);
17 cmdname = vsmprint(fmt, arg);
18 va_end(arg);
19 if (cmdname == nil)
20 return;
21 snprint(buf, sizeof buf, "#p/%d/args", getpid());
22 if((fd = open(buf, OWRITE)) >= 0){
23 write(fd, cmdname, strlen(cmdname)+1);
24 close(fd);
25 }
26 free(cmdname);
27 }
28