Beschreibung | Die Funktion tcsetattr() setzt die Parameter für das Terminal, das durch den Dateideskriptor fildes angesprochen wird. Sie legt diese wie folgt in der termios -Struktur ab, auf die termios_p zeigt: Ist optional_actions gleich TCSANOW , wird die Änderung sofort vorgenommen. Ist optional_actions gleich TCSADRAIN , wird die Änderung vorgenommen, nachdem alle Ausgaben, die auf fildes geschrieben wurden, übertragen worden sind. Diese Funktion sollte verwendet werden, wenn Parameter geändert werden, die die Ausgabe beeinflussen.Ist optional_actions gleich TCSAFLUSH , wird die Änderung vorgenommen, nachdem alle Ausgaben, die auf fildes geschrieben wurden, übertragen worden sind, und alle Eingaben, die bis dahin empfangen, aber noch nicht gelesen wurden, werden verworfen, bevor die Änderungen vorgenommen werden. Ist die Ausgabe-Baudrate, die in der termios -Struktur abgelegt ist, auf die termios_p zeigt, gleich null, bewirkt der Aufruf von tcsetattr() eine Beendigung der Terminalverbindung. Ist dieser Wert ungleich null, sind alle Werte in der termios -Struktur wirkungslos. Sind auch die übrigen Werte in der termios -Struktur wirkungslos, wird -1 zurückgegeben und errno auf EINVAL gesetzt. Ist die Eingabe-Baudrate, die in der termios -Struktur abgelegt ist, auf die termios_p zeigt, gleich null, entspricht die Eingabe-Baudrate, die in der Hardware gesetzt wird, der Ausga-be-Baudrate, die in der termios -Struktur abgelegt ist. Die Funktion tcsetattr() kehrt erfolgreich zurück, wenn sie einen Teil der angeforderten Aktionen ausgeführt hat, auch wenn einige nicht ausgeführt werden konnten. tcsetattr() setzt alle Attribute, die von der Implementierung unterstützt werden, und lässt alle nicht unterstützten unverändert. Konnte keine Aktion ausgeführt werden, wird -1 zurückgegeben und errno auf EINVAL gesetzt. Sind Eingabe- und Ausgabe-Baudrate unterschiedlich und eine Kombination, die nicht von der Hardware unterstützt wird, wird keine Baudrate geändert. Ein nachfolgender tcgetattr -Aufruf gibt den aktuellen Status des Terminals zurück, der die vorgenommenen Änderungen und die unveränderten Werte des vorhergehenden tcgetattr -Aufrufs wiedergibt. Die Funktion tcsetattr() verändert die Werte der termios -Struktur nicht, ganz gleich, ob sie sie tatsächlich übernimmt oder nicht. Nur ein tcsetattr -Aufruf oder das Schließen des letzten mit dem Terminal verbundenen Dateideskriptors im System kann verursachen, dass die in diesem Handbuch angegebenen Terminal-Parameter geändert werden. Das Signal SIGTTOU wird an die Prozessgruppe geschickt, wenn ein Prozess, der Mitglied einer Hintergrund-Prozessgruppe ist, versucht, tcsetattr() mit dem Dateideskriptor fildes, der mit seinem steuernden Terminal verbunden ist, aufzurufen. Blockiert oder ignoriert der aufrufende Prozess SIGTTOU -Signale, darf er die Operation ausführen, und es wird kein Signal SIGTTOU gesendet. |