powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запуск shell cкрипта из программы на Си
8 сообщений из 8, страница 1 из 1
Запуск shell cкрипта из программы на Си
    #33986372
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как запустить shell-cкрипт из программы на Си или linux-команду? Можете привести пример.
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33986428
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
htttКак запустить shell-cкрипт из программы на Си или linux-команду? Можете привести пример.

Семейство функций exec (на 3-й странице мана).

Запускаемая программа заменит собой вашу, поэтому, если необходимо продолжать вашу программу выполните ее разделение функцией fork

Код: plaintext
1.
2.
3.
4.
5.
if (!fork()) {
//дочерний процесс
execlp("~/my_script", NULL);
}
//основной процесс
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33986583
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну самое простое сказать system и ждать завершения.
Нк а едели ждать не хочется то
то fork + exec*, я предпочитаю execv? и для познания результата отловить SIGCHLD и спросить wait_pid
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33986626
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Систем не рекомендуют

1. игнорирует SIGINT и SIGQUIT
2. Какие-то переменные окружения могут вызвать сбои в системе, если в программах есть какие-то там привелегии. :)
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33989085
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как можно прочитать вывод shell-команды в Си-программе?
Например вывод команды iptables -L для последующего отображения и обработки.
Код: plaintext
1.
2.
3.
4.
if (!fork()) {
//дочерний процесс
execlp("iptables -L", NULL);
}
//основной процесс
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33989200
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать перенаправить стандартный выход опциями. Не факт, что получится.
Если получится, то перенаправить можно в файл или какой - нибудь программе, которая запуситится и передаст, например, по fifo данные основной прогрмаммы.
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33989227
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
httt, тут несколько решений.

Самаое простое и стандартное - запускать процесс функцией popen.

А можно вручную - исспользовать pipe совместно с fork/exec и читать stdout порожденного процесса. Что собственно и реализовано в различных shell-ах
...
Рейтинг: 0 / 0
Запуск shell cкрипта из программы на Си
    #33989580
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы было куда подсматривать (см на скрепке)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запуск shell cкрипта из программы на Си
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]