xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/setpgid.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include "lib.h"
2 #include <unistd.h>
3 #include <stdio.h>
4 #include <errno.h>
5 #include "sys9.h"
6 
7 int
setpgid(pid_t pid,pid_t pgid)8 setpgid(pid_t pid, pid_t pgid)
9 {
10 	int n, f;
11 	char buf[50], fname[30];
12 
13 	if(pid == 0)
14 		pid = getpid();
15 	if(pgid == 0)
16 		pgid = getpgrp();
17 	sprintf(fname, "/proc/%d/noteid", pid);
18 	f = open(fname, 1);
19 	if(f < 0) {
20 		errno = ESRCH;
21 		return -1;
22 	}
23 	n = sprintf(buf, "%d", pgid);
24 	n = write(f, buf, n);
25 	if(n < 0)
26 		_syserrno();
27 	else
28 		n = 0;
29 	close(f);
30 	return n;
31 }
32