URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6432
[ Назад ]

Исходное сообщение
"Как из скрипта передать значение в прогу на С++?"

Отправлено AVN , 03-Май-07 13:50 
Необходимо запустить из проги на С++ внешнюю программу, например перловый скрипт. И получить результат работы скрипта в переменную в программе. Как запустить скрипт вопроса нет, это достаточно много где хорошо описано, но везде внешняя прога работает сама по себе, например сендмайл посылает письмо, а мне например надо запустить скрипт подсчета свободного места на диске и получить это значение в прогу.
Куда копать?

Содержание

Сообщения в этом обсуждении
"Как из скрипта передать значение в прогу на С++?"
Отправлено NuINu , 03-Май-07 14:29 
>Необходимо запустить из проги на С++ внешнюю программу, например перловый скрипт. И
>получить результат работы скрипта в переменную в программе. Как запустить скрипт
>вопроса нет, это достаточно много где хорошо описано, но везде внешняя
>прога работает сама по себе, например сендмайл посылает письмо, а мне
>например надо запустить скрипт подсчета свободного места на диске и получить
>это значение в прогу.
>Куда копать?

Все просто, пишешь класс в который передаешь прогу и параметры запуска, а из него считываешь какой нибудь StringList,вывод этой проги и exit code. Затем
в этом классе пишешь метод run в котором, выполняешь создание pipe и затем fork
в дочернем процессе настраиваешь stdin, stdout на пайповые каналы и выполняешь exec нужной тебе команды. В родителе, метод run складываешь строки в лист и ждешь окончания child процесса. все.

Похожий метод смотри Теренс Чан Системное программирование на спп для Юникс 253стр.


"Как из скрипта передать значение в прогу на С++?"
Отправлено vic , 03-Май-07 15:25 
все уже сделано до нас
man popen =)

"Как из скрипта передать значение в прогу на С++?"
Отправлено AVN , 04-Май-07 05:54 
>все уже сделано до нас
>man popen =)


О! Спасибо, что-то подобное я и хотел услышать. А то управлять "вручную" пайпами мне показалась как-то громоздко ;-)


"Как из скрипта передать значение в прогу на С++?"
Отправлено rmf , 03-Май-07 16:32 
> а мне например надо запустить скрипт подсчета свободного места на диске
> и получить это значение в прогу.

>Куда копать?

man 2 statfs, fstatfs - get file system statistics


"Как из скрипта передать значение в прогу на С++?"
Отправлено AVN , 04-Май-07 05:56 
>> а мне например надо запустить скрипт подсчета свободного места на диске
>> и получить это значение в прогу.
>
>>Куда копать?
>
>man 2 statfs, fstatfs - get file system statistics


Хм, свободное место на диске это только для примера. Мне надо универсальную процедуру получения значения из скрипта.
Впрочем путь мне уже указали ;-)