Nonblocking IO (ITI8510)
We have two tasks today. Both with practicing nonblocking IO.
1. Canonical mode
Goal: To write a program which echoes characters on screen while typed until button 'q' is pressed. Then prints a newline.
Hints:
- Try to put the terminal into noncanonical mode. See 'man termios' or [ Google for that.
- Note that you should restore the terminal mode before quitting since otherwise the terminal might get messed up (no echo).
2. Nonblocking reading from a FIFO
Goal: To write a program which prints a '.' character every half-a second unless some input is provided on a fifo file.
Hints:
- Use open() with O_NONBLOCK flag,
- FIFO can be made with a 'mkfifo fifoname' command and written to using 'cat > fifoname'.
- You have to open fifo before reading (use two terminals).
- It helps to set output to non-buffered mode (the default is line-buffered).