curses(3X) (Enhanced Curses) curses(3X)
NAME
curses - Programmpaket für die Bearbeitung und Optimierung von
zeichenorientierten Bildschirmen
SYNTAX
cc [flag ...] file ... -lcurses [library ...]
#include <curses.h>
BESCHREIBUNG
Mit den in curses enthaltenen Bibliotheksfunktionen kann der Benutzer
zeichenorientierte Bildschirme bei geeigneter Optimierung terminalun-
abhängig aktualisieren. Bei der Kompilierung mit cc von Programmen,
die diese Routinen verwenden, muß die Option -lcurses in der Kommando-
zeile angegeben werden.
Das curses-Paket enthält Funktionen zum Bearbeiten der gesamten Bild-
schirmanzeige sowie von Fenstern und kleinen Fenstern (Pads), zur Aus-
gabe in Fenstern und kleinen Fenstern, zum Lesen der Terminaleingabe,
zur Steuerung von Terminal- und curses-Ein-/Ausgabeoptionen, zum
Abfragen der Umgebungseinstellungen, zum Bearbeiten von Farben, zur
Verwendung von SLKs (Soft Label Keys - nicht-festverdrahteten Funkti-
onstasten), für den Zugriff auf die Datenbasis terminfo und für den
Zugriff auf curses-Low-Level-Funktionen.
Zum Initialisieren der Funktionen muß zunächst die Funktion initscr()
oder newterm() aufgerufen werden; erst dann können andere Funktionen
für Fenster und Bildschirme verwendet werden. Vor dem Verlassen muß
die Funktion endwin() aufgerufen werden. Zur Einzelzeicheneingabe ohne
Echo-Funktion (dies ist für die meisten interaktiven, bildschirmorien-
tierten Programme erforderlich) sollte die folgende Sequenz verwendet
werden:
initscr,cbreak,noecho;
Die meisten Programme verwenden zusätzlich die Sequenz:
nonl,intrflush(stdscr,FALSE),keypad(stdscr,TRUE);
Bevor ein curses-Programm ausgeführt wird, müssen die Tabulatoren des
Terminals gesetzt und die Strings für die Initialisierung ausgegeben
werden, sofern sie definiert sind. Führen Sie hierzu das Kommando tput
init aus, nachdem die Shell-Umgebungsvariable TERM exportiert worden
ist. [Nähere Informationen hierzu finden Sie unter terminfo(4).]
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
Bildschirme, Fenster und Terminals
Bildschirm (Screen)
Ein Bildschirm ist das physische Ausgabegerät des Terminals. In curses
ist ein Datentyp SCREEN ein nicht transparenter Datentyp, der einem
Terminal zugeordnet ist. Jedes Fenster (siehe unten) ist einem SCREEN
zugeordnet.
Fenster (Windows)
Die curses-Funktionen erlauben die Bearbeitung von Fensterobjekten,
die man sich als zweidimensionale Zeichen-Arrays und deren Darstellun-
gen vorstellen kann. Ein Standardfenster mit dem Namen stdscr, das die
Größe des Terminalbildschirms hat, ist bereits vorhanden. Weitere Fen-
ster können mit newwin() erstellt werden.
Variablen, die als WINDOW * deklariert sind, verweisen auf Fenster
(und auf untergeordnete Fenster, abgeleitete Fenster und kleine Fen-
ster (Pads) wie weiter unten beschrieben). Diese Datenstrukturen wer-
den mit den Funktionen bearbeitet, die auf den 3X-Seiten des Referenz-
handbuchs beschrieben sind. Hierbei sind move() und addch() die grund-
legenden Funktionen. Mit den allgemeineren Versionen dieser Funktionen
kann ein Prozeß ein Fenster angeben.
Nachdem Funktionen zur Fensterbearbeitung verwendet worden sind, wird
refresh() aufgerufen; hierdurch wird curses aufgefordert, das Aussehen
des zeichenorientierten Bildschirms an das des Standardfensters stdscr
anzupassen.
Zeichen zum Zeichnen von Linien können auch für die Ausgabe verwendet
werden. Bei der Eingabe kann curses außerdem Pfeil- und Funktionsta-
sten, die ESCAPE-Sequenzen übertragen, in Einzelwerte übersetzen. Für
Zeichen zum Zeichnen von Linien und für Eingabewerte werden Namen ver-
wendet, die in <curses.h> definiert sind [siehe curses(5)].
Jedes Fenster hat ein Flag, das angibt, daß die Informationen im Fen-
ster von den am Terminalgerät angezeigten Informationen abweichen kön-
nen. Dieses Flag wird beim Ändern des Fensterinhalts, beim Verschieben
oder Ändern des Fensters oder beim Einstellen der Cursor-Position des
Fensters gesetzt (das Fenster wird als geändert markiert). Sobald das
Fenster aktualisiert wird, wird dieses Flag gelöscht. Weitere Informa-
tionen hierzu finden Sie unter islinetouched(3X).
Untergeordnete Fenster (Subwindows)
Ein untergeordnetes Fenster ist ein Fenster, das innerhalb eines ande-
ren Fensters (dem übergeordneten Fenster) erstellt und relativ zum
übergeordneten Fenster positioniert wird. Ein untergeordnetes Fenster
kann durch Aufrufen von derwin(), newpad() oder subwin() erstellt wer-
den. Änderungen, die am untergeordneten Fenster vorgenommen werden,
haben keine Auswirkungen auf das übergeordnete Fenster.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
Untergeordnete Fenster können von einem übergeordneten Fenster aus
durch Aufrufen von subwin() erstellt werden. Position und Größe von
untergeordneten Fenstern auf dem Bildschirm müssen mit denen des über-
geordneten Fensters übereinstimmen oder innerhalb dieses Fensters lie-
gen. Änderungen, die am übergeordneten Fenster vorgenommen werden,
wirken sich sowohl auf untergeordnete als auch auf abgeleitete Fenster
aus. Fensterverkleinerung ist keine Eigenschaft, die von untergeordne-
ten Fenstern unterstützt wird.
Stammfenster (Ancestors)
Der Begriff Stammfenster bezieht sich auf das übergeordnete Fenster
eines Fensters, dessen übergeordnetes Fenster usw.
Abgeleitete Fenster (Derived Windows)
Abgeleitete Fenster sind untergeordnete Fenster, deren Position in
bezug auf das übergeordnete Fenster anstatt durch absolute Bildschirm-
koordinaten definiert ist. Ansonsten unterscheiden sich abgeleitete
Fenster nicht von untergeordneten Fenstern.
Kleine Fenster (Pads)
Ein Pad ist ein Sonderfall eines untergeordneten Fensters, das nicht
unbedingt einem sichtbaren Teil des Bildschirms zugeordnet sein muß.
Funktionen im Zusammenhang mit Pads werden in newpad(3X) näher
beschrieben.
Terminal
Ein Terminal ist das logische Ein-/Ausgabegerät, über das zeichen-
orientierte Anwendungen mit dem Benutzer interagieren. TERMINAL ist
ein nicht transparenter Datentyp, der einem Terminal zugeordnet ist.
Eine Datenstruktur TERMINAL enthält hauptsächlich Informationen zu den
Funktionen des Terminals wie in terminfo definiert. Sie enthält ferner
Informationen zu den Terminalmodi und dem aktuellen Status für Ein-
und Ausgabeoperationen. Jeder Bildschirm ist (wie oben definiert)
einem TERMINAL zugeordnet.
Eingabeverarbeitung
Das Eingabemodell von curses stellt eine ganze Reihe von Möglichkeiten
für die Eingabe über die Tastatur zur Verfügung.
Verarbeitung von Eingabe über den Tastenblock
Die Anwendung kann die "Übersetzung der Eingabe über den Tastenblock"
durch Aufrufen von keypad() aktivieren und deaktivieren. Wenn die
Übersetzung aktiviert ist, versucht curses eine Terminaleingabese-
quenz, die dem Drücken einer Funktionstaste entspricht, in einen ein-
fachen Tastencode zu übersetzen. Wenn die Übersetzung deaktiviert ist,
leitet curses die Terminaleingabe ohne Übersetzung an die Anwendung
weiter und jegliche Interpretation der Eingabe, die dem Drücken einer
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
Taste auf dem Tastenblock entspricht, muß von der Anwendung selbst
vorgenommen werden.
Der vollständige Satz der Tastencodes für die Tasten des Tastenblocks,
die curses verarbeiten kann, wird über Konstanten angegeben, die in
<curses.h> definiert sind. Hierbei handelt es sich um die Konstanten,
die mit KEY beginnen. Jeder in der Datenbasis terminfo beschriebene
Terminaltyp unterstützt einige oder alle dieser Tastencodes. In der
Datenbasis terminfo ist zu jedem Tastencode die entsprechende Sequenz
der Eingabezeichen vom Terminaltyp angegeben [siehe keypad(3X)].
Die curses-Implementierung kann Tasten des Tastenblocks auf Terminals,
bei denen durch Drücken dieser Tasten keine eindeutige Eingabesequenz
übertragen wird, nicht verarbeiten.
Wenn die Übersetzung aktiviert ist und ein Zeichen empfangen wird, das
für den Anfang einer Funktionstaste stehen könnte (zum Beispiel das
ESCAPE-Zeichen), notiert sich curses die Uhrzeit und sammelt die fol-
genden Zeichen. Werden während einer nicht definierten Zeitspanne ab
dem Zeitpunkt, da das erste Zeichen empfangen wurde, weitere Zeichen
empfangen, die durch Drücken einer Taste auf dem Tastenblock generiert
werden, so setzt curses diese Eingabe in einen Tastencode um, der an
die Anwendung weitergegeben wird. Werden während dieser Zeitspanne
keine entsprechenden Zeichen mehr empfangen, erfolgt keine Übersetzung
dieser Eingabe und die einzelnen Zeichen werden separat an die Anwen-
dung weitergegeben. (Aufgrund der Zeitspanne, die curses zum Akkumu-
lieren der Zeichen für den Tastencode wartet, ist bei vielen Terminals
eine Verzögerung zwischen dem Drücken der ESCAPE-Taste und der Ausgabe
des entsprechenden Zeichens an die Anwendung zu beobachten.)
Bei dem Modus "Keine Zeitüberschreitung" (No Timeout) wird außerdem
jedesmal, wenn curses einen Teil einer Funktionstastensequenz empfan-
gen hat, unbegrenzt auf die vollständige Tastensequenz gewartet. Die
im vorherigen Abschnitt angesprochene "nicht definierte Zeitspanne"
ist bei diesem Modus unendlich. Der Modus "Keine Zeitüberschreitung"
ermöglicht die Verwendung von Funktionstasten bei langsamen Übertra-
gungsleitungen. In diesem Modus kann der Benutzer zwar die einzelnen
Zeichen einer Funktionstastensequenz eingeben, allerdings wird hier-
durch bei Eingabe eines Zeichens (keiner Funktionstaste), mit dem eine
Funktionstastensequenz beginnt, auch die Antwort der Anwendung verzö-
gert. Aus diesem Grund scheinen viele Terminals zwischen dem Drücken
der ESCAPE-Taste und dem Drücken einer anderen Taste zu "hängen".
Durch Aufrufen von notimeout() kann vom Modus "Keine Zeitüberschrei-
tung" wieder in den Zeitüberschreitungsmodus gewechselt werden.
Wenn Sonderzeichen (<backspace>, <carriage return>, <newline>, <tab>)
als Zeichen, die zu einer Funktionstastensequenz gehören, definiert
oder neu definiert werden, kann curses diese Funktionstasten nicht
erkennen und demnach auch nicht übersetzen.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
Einige der unten behandelten Modi sind in bezug auf ihre Verfügbarkeit
für die Eingabe beschrieben. Wenn die Übersetzung der Eingabe über den
Tastenblock aktiviert ist, ist die Eingabe von dem Zeitpunkt, da
curses begonnen hat, eine Eingabesequenz über den Tastenblock zu emp-
fangen bis zum vollständigen Empfang der Sequenz oder bis zum Ablauf
der Zeitspanne nicht verfügbar.
Eingabemodus
Die XBD-Spezifikation ("Special Characters") definiert Flußsteuerungs-
zeichen, das Interrupt-Zeichen, das Erase-Zeichen und das Kill-Zei-
chen. Über vier sich gegenseitig ausschließende curses-Modi kann die
Anwendung die Auswirkung dieser Eingabezeichen steuern:
________________________________________________________________________
| Eingabemodus | Auswirkung |
|__________________|____________________________________________________|
| Cooked-Modus | Aktiviert die normale, zeilenweise vorgehende Ver-|
| | arbeitung, wobei alle Sonderzeichen außerhalb der |
| | Anwendung bearbeitet werden. Dieser Modus hat die-|
| | selben Auswirkungen wie die in der XBD-Spezifika- |
| | tion beschriebene Eingabeverarbeitung im kanoni- |
| | schen Modus. Die Status der Flags ISIG und IXON |
| | werden nicht geändert, wenn der Modus über |
| | nocbreak() aufgerufen wird, und aktiviert, wenn |
| | der Modus über noraw() aufgerufen wird. |
| | |
| | Die Implementierung unterstützt Erase- und Kill- |
| | Zeichen aus jeder unterstützten Locale, unabhängig|
| | von der Breite des Zeichens. |
| | |
| cbreak-Modus | Vom Benutzer eingegebene Zeichen werden direkt an |
| | die Anwendung weitergegeben, und curses führt |
| | keine spezielle Verarbeitung bei Erase- oder |
| | Kill-Zeichen durch. Eine Anwendung kann den Modus |
| | cbreak aktivieren, um die Zeilen selbst zu editie-|
| | ren, wobei jedoch die Möglichkeit besteht, die |
| | Operation durch das Abort-Zeichen abzubrechen. |
| | Dieser Modus hat dieselben Auswirkungen wie die |
| | Eingabeverarbeitung im nichtkanonischen Modus, die|
| | in der XBD-Spezifikation unter Fall B beschrieben |
| | ist (wobei MIN auf 1 gesetzt und ICRNL gelöscht |
| | ist). Die Status der Flags ISIG und IXON werden |
| | bei Eintritt in diesen Modus nicht geändert. |
|__________________|____________________________________________________|
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
________________________________________________________________________
| Eingabemodus | Auswirkung |
|__________________|____________________________________________________|
| Modus "Halbe Ver-| Dieser Modus wirkt sich wie der Modus cbreak aus, |
| zögerung" | mit der Ausnahme, daß die Eingabefunktionen war- |
| | ten, bis ein Zeichen eingegeben oder ein von der |
| | Anwendung definierter Zeitraum überschritten wird,|
| | je nachdem, was zuerst eintrifft. Dieser Modus hat|
| | dieselben Auswirkungen wie die Eingabeverarbeitung|
| | im nichtkanonischen Modus, die in der XBD-Spezifi-|
| | kation unter Fall C beschrieben ist (wobei TIME |
| | auf den von der Anwendung angegebenen Wert gesetzt|
| | ist). Die Status der Flags ISIG und IXON werden |
| | bei Eintritt in diesen Modus nicht geändert. |
| | |
| Raw-Modus | Durch den Raw-Modus erhält die Anwendung die maxi-|
| | male Kontrolle über die Terminaleingabe. Die ein- |
| | gegebenen Zeichen werden direkt an die Anwendung |
| | weitergeleitet. Dieser Modus hat dieselben Auswir-|
| | kungen wie die Eingabeverarbeitung im nichtkanoni-|
| | schen Modus, die in der XBD-Spezifikation unter |
| | Fall B beschrieben ist Die Status der Flags ISIG |
| | und IXON werden bei Eintritt in diesen Modus |
| | gelöscht. |
|__________________|____________________________________________________|
Die Einstellungen der Terminalschnittstellen werden aufgezeichnet,
wenn der Prozeß initscr() oder newterm() aufruft, um curses zu initia-
lisieren und werden wieder zuückgesetzt, wenn endwin() aufgerufen
wird. Der Anfangseingabemodus für curses-Operationen ist nicht defi-
niert, es sei denn, die Implementierung unterstützt die Funktionen von
"Enhanced Curses". In diesem Fall ist der Anfangseingabemodus cbreak.
Das Verhalten der BREAK-Taste wird von anderen nicht von curses
gesetzten Bits des Terminaltreibers bestimmt.
Verzögerungsmodus
Zwei sich gegenseitig ausschließende Verzögerungsmodi geben an, wie
schnell bestimmte curses-Funktionen an die Anwendung zurückgegeben
werden, wenn beim Aufrufen der Funktion keine Terminaleingabe ansteht:
Keine Verzögerung Die Funktion schlägt fehl.
Verzögerung Die Anwendung wartet, bis die Implementierung Text
an die Anwendung weitergibt. Wenn der cbreak- oder
Raw-Modus gesetzt ist, geschieht dies nach Eingabe
eines Zeichens, andernfalls nach dem ersten Zeilen-
vorschubzeichen (<newline>), dem Zeilenendezeichen
oder dem Dateiendezeichen.
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
Die Auswirkung des Modus "Keine Verzögerung" auf die Verarbeitung von
Funktionstasten ist nicht definiert.
Echo-Verarbeitung
Der Echo-Modus bestimmt, ob curses die eingegebenen Zeichen direkt auf
dem Bildschirm wiedergibt. Der Echo-Modus entspricht dem Flag ECHO im
Feld für lokale Modi der Struktur termios für das Terminalgerät, das
dem Fenster zugeordnet ist. Beim Aufruf löscht curses jedoch immer das
Flag ECHO, um die Echo-Funktion des Betriebssystems zu deaktivieren.
Die Methode für die direkte Wiedergabe der Zeichen auf dem Bildschirm
entspricht nicht der des Betriebssystems, da curses die Terminalein-
gabe noch zusätzlich verarbeitet.
Ist der Echo-Modus aktiviert, führt curses die eigene Echo-Funktion
durch: Jedes sichtbare Eingabezeichen wird von der über die Anwendung
aufgerufenen Eingabefunktion im aktuellen oder angegebenen Fenster an
der Cursor-Position gespeichert, so als wäre addch() aufgerufen - und
zwar mit allen Auswirkungen dieser Funktion wie Cursor-Bewegung und
Zeilenumbrüche.
Ist der Echo-Modus nicht aktiviert, muß die Wiedergabe der Eingabe
über die Anwendung erfolgen. Anwendungen führen in vielen Fällen ihre
eigenen Echo-Funktionen in einem bestimmten Bereich des Bildschirms
aus oder sie deaktivieren den Echo-Modus.
Unter Umständen ist die Echo-Verarbeitung für synchrone Terminals und
asynchrone Terminals im Netzwerk nicht möglich, da diese Verarbeitung
direkt von den Terminals durchfgeführt wird. Bei Anwendungen, die auf
solchen Terminals ausgeführt werden, sollte bedacht werden, daß die
eingegebenen Zeichen an der Stelle auf dem Bildschirm angezeigt wer-
den, an der der Cursor gerade steht.
Umgebungsvariablen
Wenn die Umgebungsvariablen LINES und COLUMNS gesetzt sind, oder wenn
das Programm in einer Fensterumgebung ausgeführt wird, überschreiben
Zeilen- und Spaltendaten in der Umgebung die von terminfo gelesenen
Daten. Dies würde sich zum Beispiel auf ein Programm auswirken, das in
einer AT&T 630-Schicht ausgeführt wird, in der sich die Bildschirm-
größe verändern läßt.
Wenn die Umgebungsvariable TERMINFO definiert ist, sucht jedes Pro-
gramm, das curses verwendet, zunächst nach einer lokalen Terminaldefi-
nition, bevor es die Suche im Standardverzeichnis fortsetzt. Ist TERM
beispielsweise auf att4424 gesetzt, befindet sich die kompilierte Ter-
minaldefinition in folgender Datei:
/usr/share/lib/terminfo/a/att4424
(Das a wird aus dem ersten Buchstaben von att4424 kopiert, um die
Erstellung riesiger Verzeichnisse zu vermeiden.) Wird TERMINFO aber
auf $HOME/myterms gesetzt, überprüft curses zunächst folgende Datei:
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
$HOME/myterms/a/att4424
Wird die Definition hier nicht gefunden, überprüft curses folgende
Datei:
/usr/share/lib/terminfo/a/att4424
Dies ist zum Beispiel bei der Entwicklung von Testdefinitionen nütz-
lich, oder wenn für /usr/share/lib/terminfo kein Schreibzugriff
besteht.
Die ganzzahligen Variablen LINES und COLS sind in <curses.h> definiert
und werden von initscr auf die Größe des Bildschirms gesetzt. Die Kon-
stanten TRUE und FALSE haben die Werte 1 bzw. 0.
Die Funktionen von curses definieren ferner die WINDOW *-Variable
curscr, die für bestimmte Low-Level-Operationen wie das Löschen und
Neuzeichnen einer mit unbrauchbaren Daten gefüllten Bildschirmanzeige
verwendet wird. Die Variable curscr kann nur in wenigen Funktionen
verwendet werden.
Benennungsregeln für die Funktionen
Die 3X-Seiten (Man Pages) enthalten mehrere Gruppen von curses-Funk-
tionen. Die Funktionsgruppen enthalten unterschiedliche Funktionen,
mit folgenden Optionen für den Programmierer:
- Eine Funktion mit dem Basisnamen gilt für das Fenster stdscr. Eine
Funktion mit dem Basisnamen und dem Präfix w [siehe w(3X] gilt für
ein über das Argument win angegebenes Fenster.
Wenn die Handbuchseite für eine Funktionsgruppe auf das aktuelle
oder angegebene Fenster verweist, bezieht sich dieses bei den
Basisfunktionen auf das Fenster stdscr und bei allen w-Funktionen
auf das über win angegebene Fenster.
Bei Funktionen, deren Namen mit p beginnen, muß als Argument ein
Pad anstatt eines Fensters angegeben werden.
- Eine Funktion mit dem Basisnamen wird basierend auf der aktuellen
Cursor-Position (im aktuellen oder angegebenen Fenster wie oben
beschrieben) ausgeführt. Eine Funktion mit dem Basisnamen und dem
Präfix mv [siehe mv(3X], bewegt den Cursor auf eine durch die Argu-
mente y und x angegebene Position, bevor die angegebene Operation
ausgeführt wird.
Wenn die Handbuchseite für eine Funktionsgruppe auf die aktuelle
oder angegebene Position verweist, bezieht sich diese bei den
Basisfunktionen auf die Cursor-Position und bei allen mv-Funktionen
auf die Position (y, x).
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
Ferner gibt es noch das Präfix mvw, das die hier beschriebene
Semantik von mv und die weiter oben beschriebene Semantik von w
kombiniert. Das Fensterargument wird immer vor den Koordinaten
angegeben.
- Eine Funktion mit dem Basisnamen dient oft der Kompatibilität mit
früheren Versionen und kann nur für Einzelbytezeichen ausgeführt
werden. Eine Funktion mit dem Basisnamen plus einem Infix w wird
für Wide-Charachters (Mehrbytezeichen) ausgeführt. Eine Funktion
mit dem Basisnamen plus dem Infix -w wird für komplexe Zeichen und
deren Darstellung (bestehend aus Attributen und Farbenpaar) ausge-
führt.
- Für eine Funktion mit dem Basisnamen, die für ein Einzelbytezeichen
ausgeführt wird, liegt manchmal auch eine Funktion mit demselben
Namen plus dem Infix n vor, die für mehrere Zeichen ausgeführt
wird. Ein Argument n gibt die Anzahl der zu verarbeitenden Zeichen
an. Auf der entsprechenden Handbuchseite ist angegeben, welche Aus-
gabe bei einem ungültigen Wert von n erfolgt.
Funktionsgruppen
________________________________________________________________________________
| Funktionsnamen Beschreibung | s | w | c | Siehe |
|_________________________________________________|___|___|___|________________|
| Hinzufügen (Überschreiben) | | | | |
|[mv][w]addch Ein Zeichen hinzufügen | J | J | J | addch(3X) |
|[mv][w]addch[n]str Einen Zeichen-String hinzu- | N | N | N | addchstr(3X) |
| fügen | | | | |
|[mv][w]add[n]str Einen String hinzufügen | J | J | J | addnstr(3X) |
|[mv][w]add[n]wstr Einen Wide-Character-String | J | J | J | addnwstr(3X) |
| hinzufügen | | | | |
|[mv][w]addwch Ein Wide-Character mit Dar- | J | J | J | addwch(3X) |
| stellung hinzufügen | | | | |
|[mv][w]addwch[n]str Einen Array aus Wide-Char- | ? | N | N | addwchnstr(3X)|
| acters und Darstellungen | | | | |
| hinzufügen | | | | |
|_________________________________________________|___|___|___|________________|
| Darstellungen ändern | | | | |
|[mv][w]chgat Darstellungen der Zeichen in| - | N | N | chgat(3X) |
| einem Fenster ändern | | | | |
|_________________________________________________|___|___|___|________________|
| Löschen | | | | |
|[mv][w]delch Ein Zeichen löschen | - | - | N | delch(3X) |
|_________________________________________________|___|___|___|________________|
Seite 9 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
________________________________________________________________________________
| Funktionsnamen Beschreibung | s | w | c | Siehe |
|_________________________________________________|___|___|___|________________|
| Abrufen (Eingabe über die | | | | |
| Tastatur in das Fenster) | | | | |
|[mv][w]getch Ein Zeichen abrufen | J | J | J | getch(3X) |
|[mv][w]get[n]str Einen Zeichen-String abrufen| J | J | J | getnstr(3X) |
|[mv][w]getwch Ein Wide-Character abrufen | J | J | J | getwch(3X) |
|[mv][w]get[n]wstr Einen Array aus Wide-Char- | J | J | J | getwstr(3X) |
| acters und Tastencodes abru-| | | | |
| fen | | | | |
|_________________________________________________|___|___|___|________________|
| Explizite Cursor-Bewegung | | | | |
|[w]move Den Cursor verschieben | - | - | - | move(3X) |
|_________________________________________________|___|___|___|________________|
| Eingeben (aus dem Fenster | | | | |
| zurückgeben) | | | | |
|[mv][w]inch Ein Zeichen eingeben | - | - | - | inch(3X) |
|[mv][w]inch[n]str Einen Array asu Zeichen und | - | - | - | inchnstr(3X) |
| Attributen eingeben | | | | |
|[mv][w]in[n]str Einen String eingeben | - | - | - | innstr(3X) |
|[mv][w]in[n]wstr Einen String aus Wide-Char- | - | - | - | innwstr(3X) |
| acters eingeben | | | | |
|[mv][w]inwch Ein Wide-Character mit Dar- | - | - | - | inwch(3X) |
| stellung eingeben | | | | |
|[mv][w]inwch[n]str Einen Array aus Wide-Char- | - | - | - | inwchnstr(3X) |
| acters und Darstellungen | | | | |
| eingeben | | | | |
|_________________________________________________|___|___|___|________________|
| Einfügen | | | | |
|[mv][w]insch Ein Zeichen einfügen | J | N | N | insch(3X) |
|[mv][w]ins[n]str Einen Zeichen-String einfü- | J | N | N | insnstr(3X) |
| gen | | | | |
|[mv][w]ins[n]wstr Einen Wide-Character-String | J | N | N | insnwstr(3X) |
| einfügen | | | | |
|[mv][w]inswch Ein Wide-Character einfügen | J | N | N | inswch(3X) |
|_________________________________________________|___|___|___|________________|
| Ausgeben und Lesen | | | | |
|[mv][w]printw Formatierte Ausgabe | - | - | - | mvprintw(3X) |
|[mv][w]scanw Formatierte Eingabe umwan- | - | - | - | mvscanw(3X) |
| deln | | | | |
|_________________________________________________|___|___|___|________________|
Legende:
Folgende Kennzeichen geben die Auswirkungen an, wenn Zeichen auf den
Bildschirm gestellt werden. (Für die Abruffunktionen (Get) gilt dies
nur bei aktivierter Echo-Funktion.)
Seite 10 Reliant UNIX 5.44 Gedruckt 11/98
curses(3X) (Enhanced Curses) curses(3X)
s "J" bedeutet, daß bei diesen Funktionen Sonderzeichen verarbeitet
werden. "N" bedeutet, daß Sonderzeichen nicht verarbeitet werden.
"?" bedeutet, daß die Ergebnisse nicht definiert sind, wenn diese
Funktionen auf Sonderzeichen angewendet werden.
w "J" bedeutet, daß bei diesen Funktionen Zeilenumbrüche durchge-
führt werden. "N" bedeutet, daß Zeilenumbrüche nicht durchgeführt
werden.
c "J" bedeutet, daß bei diesen Funktionen der Cursor auf die nächste
Position gestellt wird. "N" bedeutet, daß der Cursor nicht auf die
nächste Position gestellt wird.
- Das in dieser Spalte angegebene Attribut gilt nicht für diese
Funktionen.
HINWEISE
Die Include-Datei <curses.h> schließt automatisch die Include-Dateien
<stdio.h> und <unctrl.h> ein.
SIEHE AUCH
mv(3X), no(3X), w(3X), terminfo(4), curses(5), term(5).
Seite 11 Reliant UNIX 5.44 Gedruckt 11/98