NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO
#include <unistd.h>pid_t getsid(pid_t pid);
The function getsid() returns the session ID of the process whose process ID is equal to pid. If pid is equal to (pid_t)0, getsid() returns the session ID of the calling process. The calling process must have MAC read access to the target process. The calling process' real or effective user ID must match the real or saved user ID of the target process.
If the calling process is not already a process group leader, setsid() sets the process group ID and session ID of the calling process to the process ID of the calling process, and releases the process's controlling terminal.
See intro(2) for more information on process groups and controlling terminals.
Upon successful completion, getsid() returns the process group ID of the session leader of the specified process. Otherwise, it returns (pid_t)-1 and sets errno to indicate the error.
The getsid() function will fail if:
The process specified by pid is not in the same session as the calling process, and the implementation does not allow access to the process group ID of the session leader of that process from the calling process.
There is no process with a process ID equal to pid. Or, the calling process does not have MAC read access to the target process, and does not
have PRIV_PROC_MAC_READ
overriding privilege. Or, the calling process' real or effective user ID does not match the real or saved user ID of the target process, and does not have PRIV_PROC_OWNER
overriding privilege.
MAC and DAC policies are added to the getsid() system call.
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO