Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/76: Рейтинг темы: голосов - 76, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47

Вызов терминала

10.04.2014, 18:53. Показов 15163. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вызвать терминал и выполнить в нём какую-нибудь команду.
C++ (Qt)
1
execl("/bin/bush","ls","-c",NULL);
сомнения в этой строчки у меня, но не вижу ошибки...((
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2014, 18:53
Ответы с готовыми решениями:

Многократный вызов приложения из терминала
Я сравниваю время работы разных алгоритмов с разным представлением данных в памяти. И для того, чтобы их сравнить необходимо замерить время...

Запустить команду из терминала?
Запустить команду из терминала?

программа на C++ для терминала
При задании параметра "f" создает файл, название которого задана дополнительным аргументом этого параметра и записывает в файл остальные...

16
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.04.2014, 19:16
Цитата Сообщение от Rabbit40rt Посмотреть сообщение
"/bin/bush"
наверно тут, называется-то bash, а не bush
P.S. Зачем в терминале вызывать? Просто вызвать саму команду(ls тоже программа) и получить результат.
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
10.04.2014, 19:37  [ТС]
да исправил, всёравно не хочет, как команду то вызвать, но лучше начать с терминала)
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.04.2014, 19:46
Только заметил. Вы запускаете так:
Bash
1
2
/bin/bash ls -c
/bin/ls: /bin/ls: не удалось запустить двоичный файл
Но надо передать сначала параметр -c, а потом команду.
P.S. bash - не терминал, это командная оболочка. Терминал это, например xterm, который обычно запускает bash. Таким образом графическая оболочка отделена от логики(командной оболочки).
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
10.04.2014, 20:00  [ТС]
т.е. надо так?
C++ (Qt)
1
execl("/bin/bash","-c","ls",NULL);
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.04.2014, 20:08
В принципе да.
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
10.04.2014, 21:27  [ТС]
Тогда можно еще один вопрос, мне нужен метод, позволяющий родительскому процессу запускать программу в качестве дочернего процесса, а затем считывать ее стандартный вывод при помощи канала. Я так понимаю это через pipo, где можно пример посмотреть или еще что?
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.04.2014, 21:51
man popen
https://www.cyberforum.ru/post1929736.html
0
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
10.04.2014, 22:17
Rabbit40rt, В соседнем разделе сегодня пример приводил на C, используя popen.
Вот пост поглядите, там и книгу порекомендовал.
https://www.cyberforum.ru/c-li... ost6027381

Добавлено через 13 минут
По данной ссылке неверно закрытие файлового дескриптора. Ну и проверки отсутствуют. Зато коротко
https://www.cyberforum.ru/post1929736.html
Вместо fclose(f) нужно pclose(f)
Все из того же man.
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
14.04.2014, 22:56  [ТС]
А если терминал в новом окне открыть нужно?
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
14.04.2014, 23:17
Rabbit40rt, это уже зависит от терминала. В принципе просто вызвать приложение, xterm например. Должно открыться новое окно.
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
14.04.2014, 23:43  [ТС]
я не могу найти где он лежит, что бы вызвать
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
14.04.2014, 23:52
Code
1
2
 whereis xterm
xterm: /usr/bin/xterm /usr/bin/X11/xterm /usr/share/man/man1/xterm.1.gz
В принципе полный путь не нужен. Система сама найдет программу, просто укажите её имя.
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
15.04.2014, 00:15  [ТС]
если через execl открывать, то он не в новом, а в том же процесс запускается...
0
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
15.04.2014, 00:22
У меня эмулятор терминала называется konsole.
С помощью этого имени я могу открыть новое окно эмулятора терминала.

C++
1
2
3
4
5
6
7
#include <cstdlib>
 
int main() {
 
    system("konsole"); // имя программы эмулятора терминала
    return 0;
}
Но есть вопрос - зачем Вам это понадобилось?
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
15.04.2014, 00:53  [ТС]
не всёравно не прокатывает)
0
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
15.04.2014, 13:38
А Вы скажите какой у Вас эмулятор терминала?
Нужно знать имя команды, которая запускает эмулятор терминала. У меня эта команда konsole, так как установлена именна эта программа эмулятор.
И расскажите - зачем Вам это понадобилось?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2014, 13:38
Помогаю со студенческими работами здесь

Запуск команд терминала из программы
Люди добрые , все здравствуйте . Помогите научите объясните , как пользоваться терминалом из программы , нажал кнопку и выполнилась команда...

Замена терминала компилятора в Code::Blocks
пишу на C::B (ну очень он мне удобен) на c++ , но с переходом на линукс(ubuntu 14.04 gnome) выходит засада, при компиляциизапуске...

Как вывести результат терминала (консоли) в текстовый файл?
Как в c++ в linux вывести результат терминала (консоли)команды в текстовый файл?

Требуется написать программу, которая запрашивает ввод с терминала оператора и ...
Требуется написать программу, которая запрашивает ввод с терминала оператора и, если оператор не вводит ответ в течение 10 с, выполняет...

Аргументы при запуске из терминала
Доброго времени суток! Подскажите как реализовать с наименьшими изменениями. Есть программа на C++ с switch те можно выбирать что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru