setpgid(2)
setpgid --
set process group ID
Synopsis
#include <sys/types.h>
#include <unistd.h>
int setpgid(pid_t pid, pid_t pgid);
Description
setpgid sets the process group
ID
of the process with
ID
pid to pgid.
If pgid is equal to pid, the
process becomes a process group leader. If pgid is not equal to pid,
the process becomes a member of an existing process group.
If pid is equal to 0, the process
ID
of the calling process is used.
If pgid is equal to 0, the process specified by pid becomes
a process group leader.
Return values
On success, setpgid returns 0.
On failure, setpgid returns -1 and sets errno to identify the error.
Errors
In the following conditions, setpgid fails and sets errno to:
EACCES-
pid
matches the process
ID
of a child process of the
calling process and the child process has successfully executed an
exec(2)
function.
EBUSY-
pgid
is associated with another process group.
EINVAL-
pgid
is less than (pid_t) 0, or greater than or equal to {PID_MAX}.
EINVAL-
The calling process has a controlling terminal that does not support job control.
EPERM-
The process indicated by the
pid
argument is a session leader.
EPERM-
pid
matches the process
ID
of a child process of the
calling process and the child process is not in the same session as the
calling process.
EPERM-
pgid
does not match the process
ID
of the process
indicated by the
pid
argument and there is no process with a process group
ID
that matches
pgid
in the same session as the calling process.
ESRCH-
pid
does not match the process
ID
of the calling
process or of a child process of the calling process.
References
exec(2),
exit(2),
fork(2),
getpid(2),
setsid(2)
Notices
Considerations for threads programming
This ID number is an attribute of the containing process
and is shared by sibling threads.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004