ctermid(3)

ctermid3

Generate terminal pathname

Usage

#include <stdio.h>

char *

ctermid(char *buf);

char *

ctermid_r(char *buf);

Library

Standard C Library (libc, -lc)

Overview

The ctermid() function generates a string, that, when used as a pathname, refers to the current controlling terminal of the calling process.

If buf is the NULL pointer, a pointer to a static area is returned. Otherwise, the pathname is copied into the memory referenced by buf. The argument buf is assumed to be at least L_ctermid (as defined in the include file ⟨stdio.h⟩) bytes long.

The ctermid_r() function provides the same functionality as ctermid() except that if buf is a NULL pointer, NULL is returned.

If no suitable lookup of the controlling terminal name can be performed, this implementation returns ‘/dev/tty’.

Return values

The ctermid() function returns buf if it is non-NULL, otherwise it returns the address of a static buffer. The ctermid_r() function always returns buf, even if it is the NULL pointer.

Errors

The current implementation detects no error conditions.

Releases

87 releases since FreeBSD 2.0.5-RELEASE; the text changed 44 times.

  1. 2.0.5
  2. 2.1.5–3.4
  3. 3.5–3.5.1
  4. 4.0
  5. 4.1–4.2
  6. 4.3–4.4
  7. 4.5–4.7
  8. 4.8–4.11
  9. 5.0
  10. 5.1
  11. 5.2–6.3
  12. 6.4
  13. 7.0
  14. 7.1
  15. 7.2
  16. 7.3
  17. 7.4
  18. 8.0
  19. 8.1
  20. 8.2
  21. 8.3
  22. 8.4
  23. 9.0
  24. 9.1
  25. 9.2
  26. 9.3
  27. 10.0
  28. 10.1
  29. 10.2
  30. 10.3
  31. 10.4
  32. 11.0
  33. 11.1
  34. 11.2
  35. 11.3
  36. 11.4
  37. 12.0
  38. 12.1
  39. 12.2
  40. 12.3
  41. 12.4
  42. 13.0–13.2
  43. 13.3–14.5
  44. 15.0–15.1
  45. 16.0

Standards

The ctermid() function conforms to IEEE Std 1003.1-1988 (“POSIX.1”).

Bugs

By default the ctermid() function writes all information to an internal static object. Subsequent calls to ctermid() will modify the same object.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.