#include <unistd.h> pid_t getsid(pid_t pid);
The getsid() function obtains the process group ID of the process that is the session leader of the process specified by pid. If pid is (pid_t) 0 , it specifies the calling process.
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.
See attributes(5) for descriptions of the following attributes: