xref: /plan9-contrib/sys/src/libc/9sys/procsetname.c (revision c3b0023128940c4042dcb984316e2abe361e0e76)
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