Frage

Ich möchte ein Programm schreiben, das nur von tty Benutzereingabe liest, statt umgeleiteter stdin Rohre, wie passwd und ssh tun. Gibt es einen Ansatz?

Vielen Dank

War es hilfreich?

Lösung

Sie sollten direkt Öffnung /dev/tty versuchen. Das ist die einzige Art, wie ich sicher wissen, dass Sie Bypass die stdin Umleitung.

/dev/tty ist in der Regel ein symbolischer Link zu Ihrem ist tty-Gerät, das /dev/console oder /dev/tty24 sein kann, oder so ziemlich alles, was Sie wollen, abhängig von dem seltsamen und wunderbaren Weg, um Ihr System eingerichtet werden kann. Der tty Befehl sollte in der Lage sein, Ihnen zu sagen, welche es (als Wille den symbolischen Link selbst mit ls -al /dev/tty Listing) ist.

Aber solange man offen dev/tty für die Eingabe, soll es die Eingabe von Ihrem Terminal bekommt anstatt der Standardeingabe-Stream, die umgeleitet wurden.

Andere Tipps

Sie können versuchen, isatty (Mann 3 isatty) in Verbindung mit fileno ():

   #include <unistd.h>

   int isatty(int fd);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top