F
Recht herzlichen Dank an dich DirkB und Th69
Auch die Anmerkung von Goto10 war interessant
Ich versuche mir mal die Fragen jetzt selber zu beantworten.
(1.) Zeile 20: Was genau macht ttyn(0)!='x'?
Die 0 steht für die Standardeingabe.
Man überprüft also, ob die Standardeingabe ein Terminal ist. Falls es ein Terminal ist, dann geben wir den Fehler aus. Denn wir erwarten, dass die Standardeingabe das Skript ist.
(2.) Zeile 26: Was genau macht dieser Aufruf seek(0,0,2)?
Der erste Parameter entspricht der Standardeingabe, der zweite dem Offset, welcher 0 ist und der dritte steht laut man page für
the pointer is set to the size of the file plus offset.
Das heißt im Buffer der Standardeingabe mag irgendwas stehen und durch diesen Befehl setzten wir den Lese und -Schreibpointer an das Ende des Buffers, sodass beim nächsten Zugriff auf die Standardeingabe kein Inhalt vorhanden ist. Die Standardeingabe wurde quasi zurückgesetzt.