Я пишу детскую программу для практики. То, что я пытаюсь выполнить, - это простой небольшой графический интерфейс, который отображает службы (для Linux); с кнопками для запуска, остановки, включения и отключения служб (так же, как вкладка msconfig "Службы" в Windows). Я использую С++ с Qt Creator на Fedora 21.
Я хочу создать графический интерфейс с С++ и заполнить графический интерфейс списком сервисов, вызвав скрипты bash и вызывая скрипты bash при нажатии кнопки, чтобы выполнить соответствующие действия (включить, отключить и т.д.).
Но когда С++ GUI вызывает bash script (используя system("path/to/script.sh")
), возвращаемое значение будет только для успеха выхода. Как получить вывод самого script, чтобы я мог, в свою очередь, использовать его для отображения в графическом интерфейсе?
Для концептуального примера: если я пытаюсь отобразить вывод (systemctl --type service | cut -d " " -f 1
) в графическом интерфейсе, который я создал на С++, как бы я это сделал? Это даже правильный способ сделать то, что я пытаюсь выполнить? Если нет,
- Каков правильный путь? и
- Есть ли способ сделать это, используя мой текущий метод?
Я искал решение этой проблемы, но не могу найти информацию о том, как возвращать значения от bash до С++, только как вызвать bash скрипты из С++.