This is the simplest, but it might not work on channels which are not really files (eg. reading keyboard input) which is why we look at the other two approaches.
Questo è il più semplice, ma potrebbe non funzionare su canali che non sono realmente file (p.e. lettura di input da tastiera), motivo per cui guardiamo gli altri due approcci.