web-dev-qa-db-ja.com

端末にコマンドを送信し、端末からデータを受信する方法は?

Linux、Qt Creator。これをデバッガーで実行しました。

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

できます。ただし、実行可能ファイルをダブルクリックしても、ターミナルは表示されません(WindowsはLinuxとは対照的にこれを行います)。作成する必要があると思います。たとえば、次のように:

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

今、私はそれと通信する必要があります。どうやって?ありがとうございました。

2
Kosarar

プログラムを呼び出すプログラムを呼び出すプログラムを作成しました。最初のキーラインは次のとおりです。

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は「コンソール専用」実行可能ファイルとGUI実行可能ファイルを区別し、前者のいずれかを起動すると、コンソールが開きます。

Linuxにはこの区別はありません。すべての実行可能ファイルはほぼ同じです。ダブルクリックを実行するファイルマネージャから起動しようとすると、標準入力から読み取ろうとし、EOFマークを受け取ります(プログラムはどの端末にも接続されていないため) )および終了します。

一部のファイルマネージャは、「ターミナルで実行」オプションを提供できます。ファイルマネージャーを構成できるかどうかはわかりません。

0
sмurf