DC1 (Device Control 1) is ASCII code point 17 (0x11), Unicode U+0011. It is a C0 control character best known by its alias XON — the resume signal in XON/XOFF software flow control. A terminal or modem sends XOFF (DC3, 0x13) when its input buffer is nearly full, and XON (0x11) when it can accept data again. Ctrl+Q emits 0x11 on most terminals, which is why that shortcut means "unfreeze" in programs like screen and vim. The pairing is still the default flow control method on RS-232 serial lines configured via termios, and a stray 0x13 in a binary stream silently freezing output remains a classic debugging headache. UTF-8 encodes it as the single byte 0x11; Unicode classifies it as Cc (Control) with the alias DEVICE CONTROL ONE.
unsigned char dc1 = 0x11; // DC1 (XON)frame[i++] = dc1; // Resume sender in XON/XOFFframe[i++] = payload; // Continue with protocol byte
DC1 (ASCII 17) is best known as XON — the 'transmit on' signal. When a slow device like a printer falls behind, it sends XOFF to pause the sender, then XON (DC1) when it's ready for more. It's the original flow control.
Ctrl+Q sends DC1 (XON), which resumes output. If your terminal appears frozen, you probably accidentally pressed Ctrl+S (XOFF/DC3), which pauses output. Ctrl+Q is the 'un-pause' — one of the oldest keyboard shortcuts still in daily use.
Less than it used to be, but it's still the default flow control on many serial ports, embedded devices, and terminal emulators. Hardware flow control (RTS/CTS) is faster and more reliable, but software XON/XOFF requires no extra wires.
Absolutely. If you're sending binary data over a serial link with XON/XOFF enabled, bytes 0x11 and 0x13 in your data will be misinterpreted as flow control signals. This is why binary protocols either disable software flow control or use escaping.