Skip to content

cfmakeraw notes

Alex Willmer edited this page Feb 6, 2025 · 2 revisions

Last updated: 2025-02-06

cfmakeraw() is a libc function present on some Unix like operating systems. It modifies a struct termios so it would place a tty in "raw mode". The presence and behaviour aren't specified in POSIX. Different implementations set or unset different flags.

This document is a rough comparison of implementations.

Cell Meaning
This implementation does not modify this field
1 This implementation sets this field
0 This implementation unsets this field
Y Field present in IEEE Std 1003.1-2024
N Field not present in IEEE Std 1003.1-2024

iflag

IGNBRK BRKINT IGNPAR PARMRK INPCK ISTRIP INLCR IGNCR ICRNL IXON IXOFF IXANY IMAXBEL IUTF8
POSIX Y Y Y Y Y Y Y Y Y Y Y Y N N
FreeBSD 1 0 1 0 0 0 0 0 0 0 0 0
glibc 0 0 0 0 0 0 0 0
Mitogen 0 0 0 0 0 0 0 0 0 0 0
Python 0 0 0 0 0 0 0 0 0 0 0 0

oflag

OPOST ONLCR OCRNL TABDLY TAB0 TAB3 ONOEOT ONOCR ONLRET
POSIX Y Y Y Y Y Y N Y Y
FreeBSD 0
glibc 0
Python 0
Python 0

cflag

CSIZE CS5 CS6 CS7 CS8 CSTOPB CREAD PARENB PARODD HUPCL CLOCAL CCTS_OFLOW CRTSCTS CRTS_IFLOW MDMBUF CNO_RTSDTR
POSIX Y Y Y Y Y Y Y Y Y Y Y N N N N N
FreeBSD 0 1 0
glibc
Mitogen 0 1 1 0
Python 0 1 0

lflag

ECHOKE ECHOE ECHOK ECHO ECHONL ECHOPRT ECHOCTL ISIG ICANON ALTWERASE IEXTEN EXTPROC TOSTOP FLUSHO NOKERNINFO PENDIN NOFLSH
POSIX N Y Y Y Y N N Y Y N Y N Y N N N Y
FreeBSD 0 0 0 0 0 0 0 0 0 0
glibc 0 0 0 0 0
Mitogen 0 0 0 0 0 0 0 0 0 0
Python 0 0 0 0 0 0 0 0 0

cc

VEOF VEOL VEOL2 VERASE VWERASE VKILL VREPRINT VERASE2 VINTR VQUIT VSUSP VDSUSP VSTART VSTOP VLNEXT VDISCARD VMIN VTIME VSTATUS NCCS
POSIX Y Y N Y N Y N N Y Y Y N Y Y N N Y Y N N
FreeBSD 1 0
glibc 1 0
Mitogen
Python 1 0

Links

Clone this wiki locally