Это довольно простой сценарий, но я ' м не найти слишком много полезных ресурсов. У меня есть программа на C ++, работающая в Linux, которая выполняет обработку файлов. Читает строки, выполняет различные преобразования, записывает данные в базу данных. Есть определенные переменные (хранящиеся в базе данных), которые влияют на обработку, которую я сейчас читаю на каждой итерации, потому что я хочу, чтобы обработка была как можно более актуальной, но небольшая задержка - это нормально. Но эти переменные меняются довольно редко, а чтение со временем обходится дорого (10 миллионов плюс строк в день). Я мог бы распределить чтения для каждых n итераций или просто перезапустить программу при изменении переменной, но это кажется хакерским.
Вместо этого я бы хотел, чтобы программа запускала повторное чтение переменные при получении SIGHUP. Все я' Когда я читал об обработке сигналов, я говорю о библиотеке сигналов C, которую я не знаю, как связать ее с классами моей программы. Библиотеки сигналов Boost, похоже, больше предназначены для межобъектного взаимодействия, чем для обработки сигналов ОС.
Кто-нибудь может помочь? Похоже, это должно быть невероятно просто, но я уже довольно ржавый с C ++.