ETB (End of Transmission Block) is ASCII code point 23 (0x17), Unicode U+0017. It is a C0 control character that marked the end of an intermediate data block within a larger transmission — distinct from ETX (0x03), which closed the final block. In IBM BSC, ETB told the receiver to validate the trailing CRC or LRC and reply with ACK, but expect more blocks to follow rather than a line release. This made it essential for segmenting long transfers across half-duplex links where the entire payload could not fit in a single frame. UTF-8 encodes it as the single byte 0x17; Unicode classifies it as Cc (Control) with the alias END OF TRANSMISSION BLOCK.
unsigned char ETB = 0x17; // ASCII ETBunsigned char msg[] = { 'A','B',ETB,'C','D' }; // block boundarysize_t i = 0; while (i < sizeof msg && msg[i] != ETB) i++; // find block end
ETB (ASCII 23) stands for End of Transmission Block. It marks the end of a chunk of data within a larger transmission — like a paragraph break within a book. The full transmission isn't over, but this particular block is complete.
ETX (ASCII 3) marks the end of the entire text/message. ETB marks the end of one block within the message. Think of ETB as a section divider and ETX as the final period — more data may follow after ETB, but not after ETX.
It still appears in some mainframe communication protocols (like BISYNC) and certain healthcare data exchange standards (HL7 v2 uses it as a segment terminator in some implementations). Outside these niches, it's a historical artifact.
Only if you're implementing a protocol that specifically uses it. For general text processing, treat ETB as a non-printable control character to be stripped. Most modern protocols use explicit length fields or structured framing instead of marker bytes.