LINUX.ORG.RU

по стандарту можно:

#include <cstdlib>
....
int main()
{
...
system("ls");
...
}

Если только под линукс и более гибко, то смотри man execl и для взаимодействия(чтения записи в потоки) man pipe

AKonia ★★
()
Последнее исправление: AKonia (всего исправлений: 3)
Ответ на: комментарий от spellman

Можно. Переведи их в текстовый вид, и запускай, в чём проблема.

Вопрос только, зачем команды из баша дергать из С++, когда можно их дергать из самого баша (баш скрипта).

Я к тому что такие решения обоснованно не популярны, принято все что можно легко (по понятиям Си++ разработки) сделать без использования внешних программ, так и нужно делать (исключение это классический юникс принцип конвеера командной строки man ls | grep a например)

bonta ★★★★★
()
Последнее исправление: bonta (всего исправлений: 1)
Ответ на: комментарий от rumgot

не знал что для таких простых задач для которых давно изобретены fork, exec*, pipe, write/read - ну короче не более 10 системных ф-й, и вся логика умещается в менее чем 100 строчек кода, нужны (и судя по всему даже стали актуальны) какие-то библиотеки для запуска дочерних и коммуникации с ними :)

bonta ★★★★★
()

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

anonymous
()
Ответ на: комментарий от bonta

Вопрос только, зачем команды из баша дергать из С++

Ну, например, я писал шелл для маршрутизаторов (аналог консоли в цисковских железках), из шелла надо было управлять разными сервисами (ну там dns, proxy, sip), из c++ кода дергались скрипты на баше, питоне, перле, такое и тд.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

такое

тикле. Долбаная автозамена. Правка недоступна: мало скора.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от rumgot

Да, причем как обоснованно писалось на Хабре это хорошо, а энтерпрайз мантра - что за велосипеды бить по рукам и брать только готовое - ведет индустрию в пропасть, особенно в веб разработке, где вместо того чтобы реализовать что-то простое самим - тянут кучу зависимостей либ где это уже реализовано.

bonta ★★★★★
()
Ответ на: комментарий от bonta

энтерпрайз мантра - что за велосипеды бить по рукам и брать только готовое - ведет индустрию в пропасть

А, ну да, я же забыл главную мантру плюсижников – Каждый Проект Должен Переизобретать Свой Строковй Тип. Все эти CString, StringRef, SmallString, UString, FlexibleString, SafeString, UnsafeString, UTF16String, etc крепко обвили своими ручонками шеи плюсижников, и медленно, но верно тянут их на дно забвения, пока в это время с этого самого дна гордо поднимается молодой конкурент, подгоняемый снизу тысячами высококачественных самописных крейтов-бибилотек на любой вкус.

Запомни, юный плюсижник – ни в коем случае не используй готовые бибилотеки (крейты, по-простому). На все один ответ – костыль и велосипед.

anonymous
()
Ответ на: комментарий от anonymous

А вы когда последний раз писали на ++?

bonta ★★★★★
()

Самый очевидный вариант залинковать libbash похоже никто не предложил.

ya-betmen ★★★★★
()
Ответ на: комментарий от RazrFalcon

@ эта либа будет больше или сравнима с кодом программы по размеру…

anonymous
()
Ответ на: комментарий от rumgot

ну так он же уже взялся писать код, а не использовать что-то готовое, в первую очередь

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.