Terminal
I built a terminal editor and had to dig deep into understanding the terminal better
August 8,2024
Raw mode in a terminal is receiving the raw bytes from the STDIN file.
terminal usually gets opened in canonical mode which means input is fed to the program one line at a time, instead of character by character. This can be done by unsetting the ICANON flag. There are a lot of these bitflags
| Flag | Description |
|---|---|
ICANON | canonical flag to indicate that the input is read line by line |
ISIG | Controls signals like ctrl+c, ctrl+z and others. |
ECHO | Echoing the input to the terminal. i.e. seeing what you are typing |
IXON | Controls ctrl+s,ctrl+q the name comes from the signals these send, XOFF and XON |
IEXTEN | Controls ctrl+v. This command sends all the bytes to the program. i.e. ctrl+v andctrl+c would send the ctrl+c to the program instead |
ICRNL | Maps the Carriage Return (Return to the new line) to New Line character. |
OPOST | Controls the post processing of characters. (e.g.) \n character is generally rendered out as \r\n this is to move the cursor to the begining + newline |
| ` | |
| ` |
ctrl+s freezes the program and ctrl+q continues it
ctrl+z runs it in the background fg can be used to run it in the foreground