ref: c4a1c232c2d7af3fff0783f3947635faa9081168
dir: /sys/src/ape/lib/ap/plan9/setpgid.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; }