---
name: "getsid"
section: "2"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/getsid"
---

# getsid(2)

get session ID

## NAME

getsid - get session ID

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <unistd.h>
```

**pid\_t getsid(pid\_t** *pid***);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**getsid**():

```
    _XOPEN_SOURCE >= 500
        || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
```

## DESCRIPTION

**getsid**() returns the session ID of the process with process ID *pid*. If *pid* is 0, **getsid**() returns the session ID of the calling process.

## RETURN VALUE

On success, a session ID is returned. On error, *(pid\_t) -1* is returned, and *errno* is set to indicate the error.

## ERRORS

- **EPERM**

  A process with process ID *pid* exists, but it is not in the same session as the calling process, and the implementation considers this an error.

- **ESRCH**

  No process with process ID *pid* was found.

## VERSIONS

Linux does not return **EPERM**.

## STANDARDS

POSIX.1-2024.

## HISTORY

SVr4, SUSv1, Linux 2.0, POSIX.1-2001 XSI, POSIX.1-2008.

## NOTES

See [**credentials**(7)](/credentials/7.md) for a description of sessions and session IDs.

## SEE ALSO

[**getpgid**(2)](/getpgid/2.md), [**setsid**(2)](/setsid/2.md), [**credentials**(7)](/credentials/7.md)
