join or create a process group
#include <unistd.h> int setpgid( pid_t pid, pid_t pgid );
The setpgid() function is used either to join an existing process group or to create a new process group within the session of the calling process. The process group ID of a session leader will not change. Upon successful completion, the process group ID of the process with a process ID matching pid is set to pgid. As a special case, either pid or pgid may be specified as zero, meaning that the process ID of the calling process is to be used.
/*
* The process joins process group 0
*/
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
void main()
{
if( setpgid( getpid(), 0 ) == -1 ) {
perror( "segpgid" );
}
printf( "%d belongs to process group %d\n",
getpid(), getpgrp() );
}
POSIX 1003.1
| Safety: | |
|---|---|
| Interrupt handler | No |
| Signal handler | Yes, but modifies errno |
| Thread | Yes |
errno, setgid(), setuid(), setsid()