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