plan9fox/sys/src/ape/lib/ap/plan9/setpgid.c
2011-03-30 19:35:09 +03:00

32 lines
463 B
C

#include "lib.h"
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include "sys9.h"
int
setpgid(pid_t pid, pid_t pgid)
{
int n, f;
char buf[50], fname[30];
if(pid == 0)
pid = getpid();
if(pgid == 0)
pgid = getpgrp();
sprintf(fname, "/proc/%d/noteid", pid);
f = open(fname, 1);
if(f < 0) {
errno = ESRCH;
return -1;
}
n = sprintf(buf, "%d", pgid);
n = write(f, buf, n);
if(n < 0)
_syserrno();
else
n = 0;
close(f);
return n;
}