Hallo,
Post by Ottmar Ohlemacherdas man unter Unix den BS mit printf("\x1B[2J") löschen kann, das hab ich
so per Zufall irgendwo gelesen. (...es was c_von_a_bis_z von Jürgen Wolf)
Das ist falsch. Richtig hingegen ist, dass "<ESC>[2J" auf ANSI-Terminals
genau wie auf der Linux-Console, VT100 und VT220 (und eventuell noch ein
paar anderen Terminals) die Steuerzeichensequenz zum Bildschirmloeschen ist.
Andere Terminals verwenden durchaus auch andere Steuerzeichenketten.
Post by Ottmar OhlemacherAllerdings würde mich schon mal interessieren, was dies krypitische
Bezeichung "\x1B[2J" im einzelnen bedeuten soll, und wo man das ggf
nachlesen kann.
Nachzulesen in der Beschreibung des jeweiligen Terminals. Fuer portable
Anwendungen stellen die Libraries "libtermcap", "libterminfo" oder auch
"libcurses" portable Moeglichkeiten zur Verfuegung, die nicht von den
Steuerzeichen eines bestimmten Terminals abhaengen. Diese Libraries
greifen auf "Terminalbeschreibungen" zurueck, die die Steuerzeichen-
sequenzen fuer verschiedene Funktionen der jeweiligen Terminals enthalten.
Diese werden dann "bei Bedarf" aus der Terminalbeschreibung des gerade
verwendeten Terminals ausgelesen und ausgegeben. Was fuer ein Terminal
gerade verwendet wird, wird dabei ueblicherweise durch die Environment-
variable "TERM" angegeben. Diese Methode ermoeglicht es, Programme zu
schreiben, die auf allen Terminals, die die noetigen Faehigkeiten besitzen
gleichermassen zu funktionieren, ohne dass man die Beschreibungen der
Terminals selbt in das Programm eincompilieren muesste. Das Programm kann
sogar mit Terminals umgehen, die es moeglicherweise zum Uebersetzungszeit-
punkt des Programms noch gar nicht gab, wenn denn die entsprechende Ter-
minalbeschreibung in den Systemdateien "nachgepflegt" wurde: Die Terminal-
steuerung wird vom Programm getrennt und kann *unabhaengig* von der ueber-
setzten Software gepflegt werden (in der "TERMCAP" bzw. "Terminfo"
Datenbank). Manch andere Systeme haben diese bei unixoiden Systemen
seit Jahrzehnten uebliche Trennung bis heute nicht bereitstellen koennen.
;-)
Tschuess,
Juergen Ilse (***@usenet-verwaltung.de)
PS: die von dir genannte Escape-Sequenz funktionierte sogar unter DOS,
wie man durch Eingabe von "prompt $e[2J" nachweisen kann ...
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...