Отправляет email-рассылки с помощью сервиса Sendsay

ping: unknown host

Здравствуйте!

Я пытаюсь вызвать ping из С++ программы:
execlp( "ping", "0", ya.ru,
"-i", 1,
"-c", 5,
"&>", "ping.out", NULL);
Как видно из конструкции вывод должен перенаправляться в ping.out.
Однако при запуске пишет "ping: unknown host &>"

Конечно можно написать bash обертку к ping'у, однако может быть кто-нибудь
сталкивался с такой проблемой?

Ответить   Sun, 1 Apr 2007 08:05:54 +0400 (#652512)

 

Ответы:

Здравствуйте Ilia N Ternovich
В сообщении от 1 апреля 2007 Ilia N Ternovich написал(a):

Перед вызовом execlp связать stderr и stdout c ping.out, или
использовать system или popen, что-бы они вызвали bash, который-бы уже
вызвал ping. &> - умеет расшифровавать только sh, а не вызываемая
программа.

Ответить   Sun, 1 Apr 2007 09:05:42 +0400 (#652518)

 

1 апреля 2007, Ilia N Ternovich написал:

"Проблема" в том, что "&>" - это конструкция для bash, а при вызове программы
через exec*() этот параметр будет просто ей передан, от чего она немало
удивится.

Можно конечно переназначить stdout и stderr самостоятельно, через open() и
dup2(), но лучше всё-таки вызвать через bash, например с помощью system().

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 30939; Возраст листа: 1346; Участников: 1452
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/652546

Ответить   "Serguei B. Khvatov" Sun, 1 Apr 2007 11:33:30 +0400 (#652546)