$linuxjunkies
>

character device

also: char device, unbuffered device

A device file that represents a hardware device allowing character-by-character (byte-stream) I/O, such as terminals, serial ports, or USB devices. Data is read and written sequentially without buffering.

Character devices are one of two main device types in Linux (the other being block devices). They handle input and output as a continuous stream of bytes rather than fixed-size blocks, making them ideal for devices where data flows in a stream or random-access is not practical.

Character devices are accessed through special files in /dev with a c indicator in file listings. For example, /dev/tty represents a terminal, /dev/null is a null device, and /dev/random provides random data. You can interact with them using standard I/O commands like cat, echo, or dd.

Common examples include keyboards (/dev/input/event*), mice, serial ports (/dev/ttyS0), and audio devices (/dev/audio). Unlike block devices such as hard drives, character devices don't require the kernel to buffer data into blocks.

Related terms