Wenn ein Prozess in der Vordergrund-Prozessgruppe seines steuernden Terminals ist, dann ist ihm das Lesen von diesem Terminal erlaubt, so wie dies im Abschnitt "Eingaben verarbeiten und Daten lesen“ beschrieben ist. Für die Implementierungen, die Auftragssteuerung (job control) unterstützen, verursacht jeder Versuch eines Prozesses aus einer Hintergrund-Prozessgruppe, von seinem steuernden Terminal zu lesen, dass seiner Prozessgruppe das Signal SIGTTIN gesendet wird, sofern nicht einer der folgenden Fälle zutrifft:
Der lesende Prozess ignoriert oder blockiert das Signal
SIGTTIN.Die Prozessgruppe des lesenden Prozesses ist verwaist.
In diesen Fällen liefert die Funktion read() das Ergebnis –1, wobei errno gleich EIO gesetzt ist und kein Signal gesendet wird. Die voreingestellte Signalaktion für SIGTTIN ist, den Prozess anzuhalten, dem dieses Signal gesendet wird (siehe auch signal.h).
Wenn ein Prozess in der Vordergrund-Prozessgruppe seines steuernden Terminals ist, dann sind Schreiboperationen erlaubt, wie dies im Abschnitt "Daten schreiben und Ausgaben verarbeiten“ beschrieben ist. Versuche eines Prozesses aus einer Hintergrund-Prozessgruppe, auf sein steuerndes Terminal zu schreiben, verursachen, dass der Prozessgruppe das Signal SIGTTOU gesendet wird, sofern nicht einer der folgenden Spezialfälle gegeben ist:
Wenn
TOSTOPnicht gesetzt oderTOSTOPgesetzt ist und der Prozess das SignalSIGTTOUignoriert oder blockiert, darf der Prozess auf das Terminal schreiben und das SignalSIGTTOUwird nicht gesendet.Wenn
TOSTOPgesetzt ist, die Prozessgruppe des schreibenden Prozesses verwaist ist und der schreibende Prozess das SignalSIGTTOUnicht blockiert, dann liefert die Funktionwrite()das Ergebnis –1, wobeierrnogleichEIOgesetzt ist und kein Signal gesendet wird.
Bestimmte Aufrufe von Funktionen, die Parameter des Terminals setzen, werden auf dieselbe Art behandelt wie Aufrufe von write(), ausser dass TOSTOP ignoriert wird; d.h. deren Wirkung ist dieselbe wie die eines Schreibversuchs auf das Terminal, wenn TOSTOP gesetzt ist (siehe auch Abschnitt "Lokalmodi“, tcdrain(), tcflow(), tcflush(), tcsendbreak() und tcsetattr()).