---
name: "tcgetsid"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/tcgetsid"
---

# tcgetsid(3)

get the process group ID for the session leader for the controlling terminal

## NAME

**tcgetsid** – get the process group ID for the session leader for the controlling terminal

## SYNOPSIS

**#include \<termios.h\>**

*pid\_t*\

**tcgetsid**(*int fildes*);

## DESCRIPTION

The **tcgetsid**() function obtains the process group ID of the session for which the terminal specified by *fildes* is the controlling terminal.

## RETURN VALUES

Upon successful completion, **tcgetsid**() returns the process group ID associated with the terminal. Otherwise, a value of (*pid\_t*)-1 is returned and *errno* is set to indicate the error.

## ERRORS

The **tcgetsid**() function will fail if:

- \[EACCES\]

  The *fildes* argument is not associated with a controlling terminal.

- \[EBADF\]

  The *fildes* argument is not a valid file descriptor.

- \[ENOTTY\]

  The file associated with *fildes* is not a terminal.

## SEE ALSO

[getsid(2)](/getsid/2.md), [setpgid(2)](/setpgid/2.md), [setsid(2)](/setsid/2.md), [tcgetpgrp(3)](/tcgetpgrp/3.md), [termios(4)](/termios/4.md)

## STANDARDS

The **tcgetsid**() function conforms to IEEE Std 1003.1-2001 (“POSIX.1”).
