LINUX.ORG.RU

Прошу помощи


0

1

добрый день. вопрос такой:как из приложения вызвать консольную команду на выполнение и отловить результат ее работы?заранее благодарю

man system, man execl

ttnl ★★★★★
()

смысл 1 из задач довольно прост:приложение должно пропинговать определенные адреса и отобразить отклик(либо пинг проходит, либо нет), так же необходимо запустить по нажатию на клавишу pg_dump(приложение postgres для сброса копии базы данных)оно запускается через консоль. Поэтому и назрел вопрос как решить эти задачи не пребегая к консоле

Zver1987
() автор топика
Ответ на: комментарий от Zver1987

Как не было ни хрена понятно, так и осталось. Какие тебе результаты нужны - выхлоп или достаточно exit_status?

ttnl ★★★★★
()

f = popen (cmdline , «r»); // запустили команду с аргументами (cmdline)

while (fgets ( buffer, sizeof(buffer), f )) {

// построчная обработка выдаваемых командой результатов

}

Sylvia ★★★★★
()
Ответ на: комментарий от Zver1987

А зачем это писать на Си? Это задача для Баша/Перла.

Если уж припёрло на Си, я бы не стал дёргать внешний пинг (да и потом парсить его вывод, вот ещё!), а заюзал бы какой-нибудь готовый libping (ftp://ftp.joedog.org/pub/libping/) например

yoghurt ★★★★★
()
Ответ на: комментарий от Zver1987

> есть ли ответ на пинг либо нет

if (system("ping -c 1 -q 127.0.0.1") == 0)
    puts("127.0.0.1 is online :)");
else
    puts("127.0.0.1 is offline :(");
arsi ★★★★★
()
Ответ на: комментарий от vasily_pupkin

всем еще раз огромное спасибо,разрешите еще один вопрос не подскажете какую-либо литературу по созданию клиент-серверных приложений под Линукс?

Zver1987
() автор топика
Ответ на: комментарий от Zver1987

Стивенс - Unix Network Programming (как по русски звучит точно, не помню)

yoghurt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.