Планирование файловых операций во встроенном Linux

Я нюхаю пакеты WiFi для RSSI (меня интересует пробный запрос и нулевые данные, временная метка и MAC-адрес источника), и мне нужно сохранить результаты в pcap файлы для дальнейшей обработки.

Проблема в том, что мне нужно разделить информацию на несколько разных файлов, создавая один файл в час.
У меня нет идеи, как проверить истекшее время в моей программе, кроме многопоточности (while(1), sleep() и проверить с clock() функция). Я использую Ubuntu, но целевой платформой является маршрутизатор с установленным Linux OpenWrt.

Мой первый концерт — проблемы с кросс-компиляцией + pthread.h, thread.h или что-то еще, или, может быть, не должно быть никаких проблем в OpenWrt?

И другая сторона вопроса — не слишком ли сложно использовать многопоточность для этой глупой проблемы?
Может быть есть другие решения? (т. е. небольшое решение псевдомультипоточности или несколько простых приемов)?

0

Решение

Вы должны использовать Cron:

Cron — системный демон, используемый для выполнения желаемых задач (в фоновом режиме) в назначенное время.

По сути, вы определяете скрипт, который будет выполняться каждый час, с помощью следующего синтаксиса:

0 */1 * * * /path/to/script.sh

Проверьте здесь для получения дополнительной информации: https://help.ubuntu.com/community/CronHowto

Для конкретной настройки OpenWrt, проверьте здесь: http://martybugs.net/wireless/openwrt/cron.cgi

Для вашего конкретного случая вы можете использовать следующий дизайн:

  • Работа Cron запускается каждый полный час
  • Пользовательский сценарий выполняется и использует механизм IPC для информирования основного приложения.
  • Основное приложение имеет специальную функцию в обработчике устройства записи, которая выполняет все необходимые действия для сброса устройства записи (другие вызовы функций, удаление файлов, создание нового файла и т. Д.).

введите описание изображения здесь

Для обзора методов IPC, чтобы начать, проверьте эта статья в Википедии.

Для конкретных реализаций вы можете использовать Boost.Interprocess, Розетки, трубы, и другие.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]