it-swarm.com.de

Wie sende ich Befehle an das Terminal und empfange Daten von dort?

Linux, Qt Creator. Ich habe dies in einem Debugger ausgeführt:

#include <stdio.h>
char p[1000];
int main()
{
    scanf("%s",p);
    return 0;
} 

Es klappt. Wenn ich auf die ausführbare Datei doppelklicke, wird jedoch kein Terminal angezeigt (Windows tut dies im Gegensatz zu Linux). Ich nehme an, ich muss eine erstellen. Zum Beispiel so:

system("/usr/bin/x-terminal-emulator");

Jetzt muss ich damit kommunizieren. Wie? Vielen Dank.

2
Kosarar

Ich habe ein Programm erstellt, das ein Programm aufruft, das ein Programm aufruft. Die Schlüsselzeile in der ersten ist:

execl("/usr/bin/x-terminal-emulator", "/usr/bin/x-terminal-emulator",
        "-e", "/home/kkk/build-untitled-Desktop-Debug/untitled",
        "/home/kkk/Downloads/1.pdf", (char*) NULL);
1
Kosarar

Windows unterscheidet zwischen "Nur-Konsole" -Programmdateien und GUI-Programmdateien. Wenn Sie eine der ersteren starten, wird die Konsole für Sie geöffnet.

Linux kennt diese Unterscheidung nicht - alle ausführbaren Dateien sind ziemlich gleich. Wenn Sie versuchen, einen von einem Dateimanager aus zu starten (wo Sie den Doppelklick ausführen), versuchen Sie, von der Standardeingabe zu lesen, und erhalten die Markierung EOF= (da das Programm nicht angehängt ist) zu einem beliebigen Terminal) und beenden.

Einige Dateimanager bieten Ihnen die Option "Im Terminal ausführen" an. Ob Ihr Dateimanager dafür konfiguriert werden kann, weiß ich nicht.

0
sмurf