![]() |
Модераторы: ginnie, korob2001 |
![]() ![]() ![]() |
|
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
Народ у меня проблема, я запускаю из скрипта прогу, она выдаёт текст в браузер, а он мне там не нужен. Подскажите как мне записать выходные данные запущенной проги в строку или масив, и чтобы эти данные не выводились в браузер???
Заранее спасибо. |
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
![]() -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
dimes |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
study
Ты наверное прогу запускаеш так: system("что то"); Делай так: my @out=`что то`; # `- обратная кавычка слева от 1 ![]() |
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
dimes, да как ты сказал я прогу запускаю и все нормально, но как мне тогда проверись с каким кодом завершился процесс, system() возвращает код завершения, а `.............` возвращает stdout
![]() |
|||
|
||||
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Не проще вместо проги вызывать функцию, которая и будет возвращать строку или массив?
|
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
нет, не проще, мне нужно прогу запустить, а не функцию.
Всем спасибо, я решил свою задачу так: запаустил system(), получил результат system(), а stdout и stderr перенаправил во временные файлы, вот код: $result=system("/program 1>/tmp/out.out 2>/tmp/err.err"); Если у кого-нибудь есть ещё варианты, пишите будет интерестно |
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
ElectricalStorm, может подскажешь, как мне потом снова открыть stdout, с помощью open stdoun; не получается???
|
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
ага неполучиться ...нужно стначала копию сохранить а потом востановить ....
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
ElectricalStorm, скажи пожалуйста как мне очистить stdout и stderr
|
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
что значит очистить ? .... может имеется ввиду их буфер ?
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
наверно, я не спец. Смотри в чем проблема, мне надо запустиь прогу, я её запускаю с помощью system, можно как то перенаправить stdout этой проги в массив или переменную? Я это раньше делал перенаправляя её выход в файл, но сейчас мне надо это прогу клонировать, и ничего не получаеться. Хочу попробовать решить это так: получить чистый stdout проги, а потом пепекопировать в массив.
|
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
что по-вашему клонировать прогу ?
скпопировать исходный текст ? какую задачу Вы решаете в общем ??? -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
нет, запускать несколько процессов одновременно. В общем задача такая: существует программа для проверки пропускной способности сети, мне необходимо написать скрипт для запуска этой проги и сгенерировать отчеты. Программа выдаёт в stdout результаты, они отправляются прямо в браузер, а мне это не нужно, мне нужно обработать результат, и выдать в браузел определённые данные. Оказалось, что если компьютер недоступен, то эта прога ждёт тайм аут около минуты, что неприемлимо!(КАК РЕШИТЬ ЭТУ ПРОБЛЕМУ ТОЖЕ НЕ ЗНАЮ) Пока мне надо добиться того, чтобы прога выдавала свой stdout и strerr в какой-нибудь массив, но не в браузер. Как решить эти задачи
![]() ![]() |
|||
|
||||
ElectricalStorm |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
пока такой вопрос...
на чем написана программа для проверки пропускной способности сети ? и еще сделайте скрипт 1.pl в нем
и скрипт 2.pl в нем
и запустите perl 2.pl сморим результат... Это сообщение отредактировал(а) ElectricalStorm - 10.11.2004, 18:24 -------------------- Нужно знать инструмент, которым пользуешься |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |