Curses werden initialisiert

In diesem Abschnitt werden die Befehle für die Initialisierung von Curses beschrieben.

Verwenden Sie die folgenden Befehle, um Curses zu initialisieren:

Befehl Beschreibung
endwin Beendet die Curses-Subroutinenbibliotheken und ihre Datenstrukturen.
initscr Initialisiert die Curses-Subroutinenbibliothek und ihre Datenstrukturen.
isendwin Gibt TRUE zurück, wenn die Subroutine endwin ohne nachfolgende Aufrufe der Subroutine wrefresh aufgerufen wurde.
neuer_Begriff Richtet ein neues Terminal ein
setupterm Richtet die TERMINAL-Struktur für die Verwendung durch Curses ein
Sie müssen die Datei curses.h am Anfang jedes Programms einschließen, das Curses-Subroutinen aufruft. Verwenden Sie dazu die folgende Anweisung:
#include <curses.h>

Bevor Sie Subroutinen aufrufen können, die Fenster oder Anzeigen bearbeiten, müssen Sie die Subroutine initscr oder newterm aufrufen. Diese Subroutinen speichern zuerst die Terminaleinstellungen und rufen dann die Subroutine setupterm auf, um ein Curses-Terminal einzurichten.

Wenn Sie vorübergehend Curses aussetzen müssen, verwenden Sie ein Shell-Escape oder eine Subroutine. Rufen Sie die Subroutine wrefresh oder doupdate auf, um die Verarbeitung nach einem temporären Escapezeichen fortzusetzen. Vor dem Verlassen eines Curses-Programms müssen Sie die Subroutine endwin aufrufen. Die Subroutine endwin schreibt TTY-Modi zurück, versetzt den Cursor in die linke untere Ecke der Anzeige und setzt das Terminal in den richtigen nicht visuellen Modus zurück.

Die meisten interaktiven, bildschirmorientierten Programme erfordern eine zeichenorientierte Eingabe, ohne dass das Ergebnis an die Anzeige zurückgemeldet wird. Um Ihr Programm mit einer Zeicheneingabe zu erstellen, rufen Sie die Subroutinen cbreak und noecho auf, nachdem Sie die Subroutine initscr aufgerufen haben. Beim Akzeptieren dieses Eingabetyps sollten Programme auch die folgenden Subroutinen aufrufen:
  • Subroutine nonl .
  • Subroutine intrflush , wobei der Parameter Fenster auf stdscr und der Parameter Flag auf FALSEgesetzt ist. Der Parameter Fenster ist erforderlich, wird aber ignoriert. Sie können stdscr als Wert des Parameters Fenster verwenden, weil stdscr bereits für Sie erstellt wurde.
  • Subroutine keypad mit dem Parameter Window auf stdscr und dem Parameter Flag auf TRUE.

Die Subroutine isendwin ist hilfreich, wenn Sie die Subroutine wrefresh aus Optimierungsgründen nicht unnötig aufrufen wollen. Um festzustellen, ob die Subroutine endwin ohne nachfolgende Aufrufe der Subroutine wrefresh aufgerufen wurde, verwenden Sie die Subroutine isendwin .