wie ermittle ich ob ich im konsolen modus bin (sowohl unter windows als auch linux)



  • hallo,

    ich braeuchte eine methode um feststellen zu koennen, ob sich meine C++ Applikation im Konsolen-Modus befindet oder nicht, undzwar sowohl fuer windows als auch fuer linux.
    (gibt es ueberhaupt eine standardmaessige ermittlungsweise ?)
    danke.


  • Mod

    Definier mal, was ein Konsolenmodus sein soll.



  • pepe75 schrieb:

    (gibt es ueberhaupt eine standardmaessige ermittlungsweise ?)

    Nein gibts nicht. Und vor allem nicht unter Standard-C++, da gibts nichtmal eine Konsole.



  • SeppJ schrieb:

    Definier mal, was ein Konsolenmodus sein soll.

    ...und erklär bitte noch dazu, warum du das in deiner eigenen Anwendung nicht weißt...



  • also der grund meiner frage ist folgender:

    ich habe eine anwendung die bestimmte funktionen nur im konsolen-modus ausfuehren soll (z.B. konsolen-ausgaben)

    ich dachte es gebe vielleicht ein system-weites makro mit dessen definiertheit man feststellen kann ob gerade obiges zutrifft, z.B. wie

    #ifdef __CONSOLE
    void ConsoleFunction();
    #endif // __CONSOLE
    

    Konsole = Textmodus, Kommandozeilenmodus, command-line-interface
    (also ausgaben auf stdout)

    klar weiss ich, ob ich das programm im konsolen modus ausfuehre oder nicht.
    aber mein programm selbst soll es auch wissen (bloede formulierung 🙄 )


  • Mod

    Du hast immer eine Ausgabe namens stdout.

    Es gibt jedoch ein paar Möglichkeiten festzustellen, ob stdout mit einem Terminal verbunden ist. Das ist dann natürlich hochgradig Betriebssystemabhängig. Wenn du aber bloß nach stdout schreibst, macht das eigentlich keinen Unterschied, da stdout keinerlei Features einer Konsole (wie positionierbarer Cursor, Farben, usw.) nutzt.



  • dass eine ausgabe auf stdout nicht weiter schlimm ist, hatte ich auch angenommen.
    mir geht es nur darum, bestimmte funktionen in meinem code durch ein evtl.
    existierendes define "auszuklammern" falls ich nicht im besagten konsolen-modus bin (siehe beispiel oben mit #ifdef ...).

    aber das koennte man ja auch selber (durch ein eigenes define) in den uebersetzung-prozess des programmes "mit-einbauen" faellt mir gerade ein
    und code-teile, die fuer konsole gedacht sind so "ausklammern" falls dieses define nicht definiert ist (also das __CONSOLE aus obigen beispiel einfach selbsts definieren)

    trotzdem danke.


Anmelden zum Antworten