Refining Signal-Driven I/O F_SETSIG · SA_SIGINFO · Realtime Signals

When Is “I/O Possible” Signaled? Terminals · Pipes & FIFOs · Sockets · inotify

Setting the File Descriptor Owner F_SETOWN · F_GETOWN

Signal-Driven I/O — Setup & Demo

Signal-Driven I/O SIGIO · O_ASYNC

Problems with select() and poll()

Problems with select() and poll()

select() vs poll() — Side-by-Side Comparison

select() vs poll() API Differences & When to Use Each

When is a File Descriptor Ready?

poll() System Call Alternative I/O Models

poll() — Timeout, Return Values & Real Example

poll() System Call Alternative I/O Models

select() – Complete Example Program

select() – Return Values & Blocking Behavior

select() System Call – Introduction

Alternative I/O Models I/O Multiplexing | select() System Call

Level-Triggered vs Edge-Triggered | Nonblocking I/O Alternative I/O Models

Alternative I/O Models Full Comparison, When to Use Which, and libevent

Alternative I/O Models Signal-driven I/O and the epoll API

Alternative I/O Models I/O Multiplexing: select() and poll()

Alternative I/O Models Nonblocking I/O: O_NONBLOCK and EAGAIN

Alternative I/O Models Overview & The Problem with Blocking I/O

Linux Terminals Canonical vs Noncanonical

Terminal Identification | isatty() | ttyname() | ttyname_r() | ctermid() | tty(1)

Terminal Window Size SIGWINCH · TIOCGWINSZ · winsize struct

Terminal Line Control tcsendbreak · tcdrain · tcflush · tcflow

Terminal Line Speed Linux Terminal Programming

Linux Terminals Terminal Line Speed (Baud Rate)

Linux Terminals Testing Terminal Modes: cbreak & raw

Implementing Terminal Mode Switching ttySetCbreak(), ttySetRaw()

Linux Terminal Modes Cooked, Cbreak, Raw & MIN/TIME Portability

Linux Terminals Noncanonical Mode, MIN/TIME

Linux Terminals Line Buffering, Delimiters & Line Editing

Linux Terminals tcgetattr(), tcsetattr() and the no_echo Example

Linux Terminals Terminal Local Flags & termios Fields

Linux Terminals Special Characters, VINTR & new_intr.c Walkthrough

Linux Terminals Local Flags (c_lflag), Echo Behavior & BRKINT

Linux Terminals Output Flags (c_oflag) & Control Flags

Linux Terminals Overview & Input Flags (c_iflag)