Пытаюсь научиться программировать.
Сделал программку для мониторинга, которая позволяет получать информацию о состоянии TCP сокетов. Запускается из консоли. И отображает мне, например, состояние некоторых сокетов. Мне необходимо сделать так, чтобы
программа проводила непрерывный опрос состояний (с интервалом напиример в секунду), сравнивала
предыдущее состояние с текущим и на основании этого выполняла некоторые действия. Работать она должна непрерывно в течении длительного времени. Как мне наиболее разумно решить эту ситуацию.
Пока я других решений, кроме бесконечного цикла не знаю.
Может тут нужно сделать демон? Какие есть еще решения.Система: Linux2.6
Язык: Си.
>[оверквотинг удален]
>необходимо сделать так, чтобы
>программа проводила непрерывный опрос состояний (с интервалом напиример в секунду), сравнивала
>предыдущее состояние с текущим и на основании этого выполняла некоторые действия. Работать
>она должна непрерывно в течении длительного времени. Как мне наиболее разумно
>решить эту ситуацию.
>Пока я других решений, кроме бесконечного цикла не знаю.
>Может тут нужно сделать демон? Какие есть еще решения.
>
>Система: Linux2.6
>Язык: Си.Демон в общем та же программа, только отсоединенная от терминала и пишущая логи свои в файл/syslog/mail/sysconsole.
А куда от цикла денешься? Можно напридумывать разные решения и без него, но зависит в общем все от того должна ли программа еще что-то делать между опросами. Если нет, то заснуть на заданное время (sleep()) в цикле. Имхо.
>Пытаюсь научиться программировать.
>Сделал программку для мониторинга, которая позволяет получать информацию о состоянии TCP сокетов.
>Запускается из консоли. И отображает мне, например, состояние некоторых сокетов.В чём проблема бесконечного цикла? В том, что программа может выйти только по SIGKILL? Ну так проверяйте ввод с клавиатуры -- если пользователь ввёл `q' -- выходим
Посмотри например на интерфейс программы top