xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/getpgrp.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
13e12c5d1SDavid du Colombier #include <sys/types.h>
23e12c5d1SDavid du Colombier #include <sys/stat.h>
33e12c5d1SDavid du Colombier #include <fcntl.h>
43e12c5d1SDavid du Colombier #include <stdlib.h>
53e12c5d1SDavid du Colombier #include <unistd.h>
63e12c5d1SDavid du Colombier #include <errno.h>
7*219b2ee8SDavid du Colombier #include <stdio.h>
83e12c5d1SDavid du Colombier #include "sys9.h"
9*219b2ee8SDavid du Colombier #include "lib.h"
103e12c5d1SDavid du Colombier 
113e12c5d1SDavid du Colombier pid_t
getpgrp(void)123e12c5d1SDavid du Colombier getpgrp(void)
133e12c5d1SDavid du Colombier {
14*219b2ee8SDavid du Colombier 	int n, f, pid;
15*219b2ee8SDavid du Colombier 	char pgrpbuf[15], fname[30];
163e12c5d1SDavid du Colombier 
17*219b2ee8SDavid du Colombier 	pid = getpid();
18*219b2ee8SDavid du Colombier 	sprintf(fname, "/proc/%d/noteid", pid);
19*219b2ee8SDavid du Colombier 	f = open(fname, 0);
203e12c5d1SDavid du Colombier 	n = read(f, pgrpbuf, sizeof pgrpbuf);
213e12c5d1SDavid du Colombier 	if(n < 0)
22*219b2ee8SDavid du Colombier 		_syserrno();
233e12c5d1SDavid du Colombier 	else
243e12c5d1SDavid du Colombier 		n = atoi(pgrpbuf);
253e12c5d1SDavid du Colombier 	close(f);
263e12c5d1SDavid du Colombier 	return n;
273e12c5d1SDavid du Colombier }
28