---
name: "stdin"
section: "4"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/fd/4"
---

# stdin(4)

file descriptor files

Part of [fd(4)](/fd/4.md).

## NAME

**fd**, **stdin**, **stdout**, **stderr** – file descriptor files

## DESCRIPTION

The files */dev/fd/0* through */dev/fd/#* refer to file descriptors which can be accessed through the file system. If the file descriptor is open and the mode the file is being opened with is a subset of the mode of the existing descriptor, the call:

```
fd = open("/dev/fd/0", mode);
```

and the call:

```
fd = fcntl(0, F_DUPFD, 0);
```

are equivalent.

Opening the files */dev/stdin*, */dev/stdout* and */dev/stderr* is equivalent to the following calls:

```
fd = fcntl(STDIN_FILENO,  F_DUPFD, 0);
fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
```

Flags to the [open(2)](/open/2.md) call other than O\_RDONLY, O\_WRONLY and O\_RDWR are ignored.

## FILES

- */dev/fd/#*

  - */dev/stdin*

  - */dev/stdout*

  - */dev/stderr*

  ## SEE ALSO

[tty(4)](/tty/4.md)
