![]() |
Модераторы: ginnie, korob2001 |
![]() ![]() ![]() |
|
kukich |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 2.12.2009 Репутация: нет Всего: нет |
Привет.Вот мой код:
Задача следующая - есть адрес,надо посмотреть куда он уходит.Обычно в команде traceroute в конце идет ответ *** ,а это у меня не интересует.Хочу чтобы программа брала первые 20 секунд traceroute и выдавала мне их.А вместо этого она сначало выполняет 20 секунд traceroute ,а затем выполняет его еще раз для печати полностью,вместо того,чтобы напечатать что уже найдено. Может есть какой то еще способ по таймауту выдавать traceroute? |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 2 Всего: 39 |
Вам нужен open с режимом открытия '-|', смотрите в perldoc. Затем в цикле читаете из файлового дескриптора и выводите. Прервать можно по сигналу таймера, либо по первой строке в которой встретились звездочки. Если по сигналу таймера, то стоит обернуть цикл чтения в eval {}
|
|||
|
||||
kukich |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 2.12.2009 Репутация: нет Всего: нет |
т.е. мне для начала надо писать в файл весь путь,а потом из него выводить часть до звездочки?а иначе я не понимаю зачем мне файл?
Это сообщение отредактировал(а) kukich - 15.2.2011, 16:16 |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 2 Всего: 39 |
Никаких файлов. open с режимом '-|' связывает дескриптор со стандартным выводом команды, переданной третим параметром.
http://perldoc.perl.org/functions/open.html |
|||
|
||||
vivu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 3.11.2009 Репутация: нет Всего: нет |
Если обрабатывать сигнал ALARM, то как-то так будет выглядеть. |
|||
|
||||
kukich |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 2.12.2009 Репутация: нет Всего: нет |
Огромное спасибо,очень сильно помогли!
Добавлено через 1 минуту и 24 секунды
Только вот не могу понять зачем дважды alarm 0 вызывать? |
||||
|
|||||
vivu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 3.11.2009 Репутация: нет Всего: нет |
Кусок с двойным eval'ом взял из Perl Cookbook глава 16.21. Там про это написано следующее:
вот |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |