Я работаю над приложением C, которое должно общаться с PostgreSQL. Сейчас мне нужно обрабатывать уведомления и предупреждения, отправленные сервером, но я не знаю, как заставить его работать.
(очень неясная) документация говорит, что мы должны использовать PQsetNoticeReceiver, чтобы установить метод в качестве получателя уведомлений, так как получатель по умолчанию просто пересылает уведомление в PQnoticeProcessor, и это печатает в stderr.
Я определил метод таким образом
static void noticeReceiver(void *arg, const PGresult *res)
и я устанавливаю его как приемник уведомлений по умолчанию при запуске, таким образом
PQsetNoticeReceiver(conn, noticeReceiver, NULL);
В моей реализации метода я просто выводю на экран несколько случайных символов, но он не вызывается. Пошаговая отладка показывает, что он установлен как приемник уведомлений по умолчанию, но никогда не вызывается.
Есть идеи?