SETSID(2-SVR4) RISC/os Reference Manual SETSID(2-SVR4)
NAME
setsid - set session ID
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
pidt setsid(void);
DESCRIPTION
If the calling process is not already a process group
leader, setsid sets the process group ID and session ID i of
the calling process to the process ID of the calling pro-
cess, and releases the process's controlling terminal.
setsid will fail and return an error if the following is
true:
EPERM The calling process is already a process
group leader, or there are processes other
than the calling process whose process group
ID is equal to the process ID of the calling
process.
SEE ALSO
intro(2), exec(2), exit(2), fork(2), getpid(2), getpgid(2),
getsid(2), setpgid(2), setpgrp, signal(2), sigsend(2).
WARNING
If the calling process is the last member of a pipeline
started by a job control shell, the shell may make the cal-
ling process a process group leader. The other processes of
the pipeline become members of that process group. In this
case, the call to setsid will fail. For this reason, a pro-
cess that calls setsid and expects to be part of a pipeline
should always first fork; the parent should exit and the
child should call setsid, thereby insuring that the process
will work reliably when started by both job control shells
and non-job control shells.
DIAGNOSTICS
Upon successful completion, setsid returns the calling
process's session ID. Otherwise, a value of -1 is returned
and errno is set to indicate the error.
Printed 11/19/92 Page 1