Konsolen/ Emulator



  • Ist es möglich eine eigene Konsole zu schreiben ?
    Mit Konsole meine ich so etwas wie die Linux Shell oder CMD.exe von Windows.

    Wie funktioniert den soetwas genau ?
    Hat jemand Links zu dem Thema, in Google kommen nur Links über Spiele-"Konsolen". 😃

    ---------------------------------------------------------------------------

    Falls jemand noch gute Links zu Emulator Programmierung hätte, wäre es gut.
    Ich will keinen "perfekten" Emulator schreiben, nur zu Lernzwecken.
    Vielleicht auch nicht. 😉

    Gruss

    Ps. Es geht um 2 Themen 🙂



  • Wenn ich es richtig verstanden habe, dann ist eine Konsole so etwas wie ein Texteditior/ Interpreter ?

    Als müsste ich einen Kommandozeilen Interpreter und den Editor schreiben, oder ?

    Gruss



  • Du kannst ein Programm schreiben, dass "Bitte Namen eingeben:" anzeigt und dann den Namen irgendwie verarbeitet, oder?
    Eine Shell ist im Prinzip nichts anderes. Du bastelst dir einen Prompt, nimmst die Eingabe entgegen, verarbeitest sie und führst entsprechende Aktionen aus.

    Ich würde ja Code beifügen, aber die Shell, die ich mal geschrieben habe, ist am Ende zu wirr geworden. 🙂

    Nur Beispielhaft:
    Der Prompt (farbig :D):

    printf( "[\033[36m%s\033[0m@\033[32m%s\033[0m] \033[1m%s\033[0m> ", getenv( "USER" ), hostname, wd );
    

    Zerlegen der Eingabe:

    for( tokens[i] = strtok( cmdline, " " ); tokens[i] != NULL; tokens[i] = strtok( NULL, " " ) ) {
        // here happens the magic
    }
    

    Ausführen des Befehls:

    execvp( argument_list[0], argument_list );
    

    Das ordentlich zum Laufen zu bringen, geht natürlich nicht von haute auf morgen, aber mir hat das Entdecken in dieser Aufgabe viel Spaß gemacht. 🙂

    Oh, und ich bin mir bewusst, dass ich C-Code gepostet habe. Ich hoffe, das nimmt mir keiner krumm. 🙂

    MfG



  • danke 👍


Anmelden zum Antworten