---
name: "getdtablesize"
section: "2"
platform: "linux"
package: "manpages-dev"
version: "4.16-2"
release: "Debian 10 (Buster)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/getdtablesize/3"
---

# getdtablesize(2)

get file descriptor table size

Part of [getdtablesize(3)](/getdtablesize/3.md).

## NAME

getdtablesize - get file descriptor table size

## SYNOPSIS

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

**int getdtablesize(void);**

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

**getdtablesize**():

- Since glibc 2.12:

  ```
  /* Glibc since 2.19: */ _DEFAULT_SOURCE
      || /* Glibc versions <= 2.19: */ _BSD_SOURCE
      || ! (_POSIX_C_SOURCE >= 200112L)
  ```

- Before glibc 2.12:

  \_BSD\_SOURCE \|\| \_XOPEN\_SOURCE \>= 500

## DESCRIPTION

**getdtablesize**() returns the maximum number of files a process can have open, one more than the largest possible value for a file descriptor.

## RETURN VALUE

The current limit on the number of open files per process.

## ERRORS

On Linux, **getdtablesize**() can return any of the errors described for [**getrlimit**(2)](/getrlimit/2.md); see NOTES below.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **getdtablesize**() | Thread safety | MT-Safe |

## CONFORMING TO

SVr4, 4.4BSD (the **getdtablesize**() function first appeared in 4.2BSD). It is not specified in POSIX.1; portable applications should employ *sysconf(\_SC\_OPEN\_MAX)* instead of this call.

## NOTES

**getdtablesize**() is implemented as a libc library function. The glibc version calls [**getrlimit**(2)](/getrlimit/2.md) and returns the current **RLIMIT\_NOFILE** limit, or **OPEN\_MAX** when that fails.

## SEE ALSO

[**close**(2)](/close/2.md), [**dup**(2)](/dup/2.md), [**getrlimit**(2)](/getrlimit/2.md), [**open**(2)](/open/2.md)

## COLOPHON

This page is part of release 4.16 of the Linux *man-pages* project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
