---
name: "tcgetsid"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/tcgetsid"
---

# tcgetsid(3)

get session ID associated with a controlling terminal

## NAME

**tcgetsid** – get session ID associated with a controlling terminal

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*pid\_t*\

**tcgetsid**(*int fd*);

## DESCRIPTION

The **tcgetsid**() function returns the process group ID of the session leader for a controlling terminal specified by *fd*.

## ERRORS

If an error occurs, **tcgetsid**() returns -1 and the global variable *errno* is set to indicate the error, as follows:

- \[EBADF\]

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

- \[ENOTTY\]

  The calling process does not have a controlling terminal or the underlying terminal device represented by *fd* is not the controlling terminal.

## SEE ALSO

[getsid(2)](/getsid/2.md), [setsid(2)](/setsid/2.md), [tcgetpgrp(3)](/tcgetpgrp/3.md), [tcsetsid(3)](/tcsetsid/3.md)

## STANDARDS

The **tcgetsid**() function conforms to X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”).
