Как отправить команды на терминал и получить данные из него?

Linux, спокойный Создатель. Я выполнил это в отладчике:

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

Работает. Однако никакой терминал не появляется, когда я дважды щелкаю по исполняемому файлу (Windows делает это в отличие от Linux). Я предполагаю, что должен создать тот. Например, как это:

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

Теперь я должен общаться с ним. Как?Спасибо.

2
задан 18 January 2017 в 07:36

2 ответа

Я создал программу, вызывающую программу, вызывающую программу. Ключевая строка в первом:

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
ответ дан 2 December 2019 в 04:51

Windows различает исполняемые файлы «только для консоли» и исполняемые файлы GUI, и если вы запустите один из первых, откроется консоль для вас.

В Linux нет этого различия - все исполняемые файлы практически одинаковы. Если вы попытаетесь запустить его из файлового менеджера (где вы делаете двойной щелчок), он запустится, попробуйте прочитать из стандартного ввода, получить отметку EOF (поскольку программа не подключена к какому-либо терминалу) и выйти. ]

Некоторые файловые менеджеры могут предложить вам опцию «Выполнить в терминале». Может ли ваш файловый менеджер быть настроен для этого, я не знаю.

0
ответ дан 2 December 2019 в 04:51

Другие вопросы по тегам:

Похожие вопросы: