Zeilenanzahl der Konsole im C-Programm nutzen

I

ichunix

Hallo und Frohe Weihnachten!

Ich schreibe gerade ein Konsolenprogramm in C und möchte die Lizenz (hier GPL in Version 2.0) ausgeben lassen.
Wenn ich das wie folgt mache, wird logischerweise die ganze Lizenz auf einmal ausgegeben:
Code:
#include <stdio.h>

void show_license(void) {
        FILE *license;
        char text[17988];

        license = fopen( "gpl" , "r" );
        if (license != NULL)
                {
                fscanf( license , "%17988c", text);
                text[17987]= '\0';
                printf("%s\n", text);
                fclose(license);
        }
}


int main() {
        show_license();
        return 0;
}

Was ich daran ändern will, ist, dass immer nur so viele Zeilen der gpl ausgegeben werden, wie auf einmal auf die Konsole bzw. das Konsolenfenster passen.
Wie kann ich denn die Anzahl der Zeilen der Konsole in C herausfinden?
Im Prinzip soll die Funktion sowas wie das Unix-Kommando more machen, nur will ich nicht more aus meinem Programm heraus aufrufen, sondern das Programm soll das selbst machen.

Viele Grüße
Christian
 
Zuletzt bearbeitet von einem Moderator:
Ich zweifle mal hiermit die Sinnhaftigkeit dieses Anliegens an.
Warum solltest du ein Programm wie "more" (oder less) nachimplementieren, wenns wahrscheinlich eh jeder user deiner Zielgruppe bereits hat?

Ansonsten wäre "termcap" glaube ich ein gutes google Suchwort. Schau mal bei wiki vorbei. Gibt afair inzwischen auch was neueres (besseres?).
 
Ich habe mich vielleicht etwas falsch ausgedrückt. Natürlich will ich nicht more/less nachbauen, um es anstelle dessen nutzen zu können. Das wäre vielleicht eine nette Übung, aber hier geht es darum, eine Textdatei auszugeben und per Druck auf Leertaste oder so eine Zeile tiefer zu springen.
Dies soll in einem Programm genutzt werden, das Berechnungen ausführt. Da das Programm interaktiv sein wird, soll es auch eine Option zum Anzeigen der Lizenz geben. Zwar könnte ich rein theoretisch auch system() benutzen, um more aufzurufen, aber Fremdprogramme nutze ich eher ungern, man weiß ja nie ob more/less/most/sonstwas wirklich auf dem System vorhanden ist (ich habe schon Systeme gesehen, wo sowas oder Dinge wie gzip fehlten)

Ich werde mal nach termcap suchen.

Viele Grüße
Christian
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

So, es funzt! Ich habe es mit terminfo hinbekommen.
 
Zuletzt bearbeitet von einem Moderator:
Zeilenweise auslesen und immer nur eine Zeile ausgeben und dann ein Readkey Aufruf machen?
 

Ähnliche Themen

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Segmentation fault -- warum?

Verständnisrobleme

Aus Datei lesen

Ausgabe in *.txt Datei & Struct

Zurück
Oben