In operating system design, file descriptors are resources that users may either read bytes from or write bytes to. These may include actual files.

By convention:

  • 0: standard input (read)
  • 1: standard output (write)
  • 2: standard error (write)