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

# isfdtype(3)

test file type of a file descriptor

## NAME

isfdtype - test file type of a file descriptor

## LIBRARY

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

## SYNOPSIS

```
#include <sys/stat.h>
#include <sys/socket.h>
```

**int isfdtype(int** *fd***, int** *fdtype***);**

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

**isfdtype**():

```
    Since glibc 2.20:
        _DEFAULT_SOURCE
    Before glibc 2.20:
        _BSD_SOURCE || _SVID_SOURCE
```

## DESCRIPTION

The **isfdtype**() function tests whether the file descriptor *fd* refers to a file of type *fdtype*. The *fdtype* argument specifies one of the **S\_IF\*** constants defined in *\<sys/stat.h\>* and documented in [**stat**(2)](/stat/2.md) (e.g., **S\_IFREG**).

## RETURN VALUE

The **isfdtype**() function returns 1 if the file descriptor *fd* is of type *fdtype* and 0 if it is not. On failure, -1 is returned and *errno* is set to indicate the error.

## ERRORS

The **isfdtype**() function can fail with any of the same errors as [**fstat**(2)](/fstat/2.md).

## VERSIONS

Portable applications should use [**fstat**(2)](/fstat/2.md) instead.

## STANDARDS

None.

## HISTORY

It appeared in the draft POSIX.1g standard. It is present on OpenBSD and Tru64 UNIX (where the required header file in both cases is just *\<sys/stat.h\>*, as shown in the POSIX.1g draft).

## SEE ALSO

[**fstat**(2)](/fstat/2.md)
