PQsetNoticeProcessor libpq が生成する,注意・警告メッセージの出力方法を制御します.
void PQsetNoticeProcessor (PGconn * conn, void (*noticeProcessor) (void * arg, const char * message), void * arg)
バックエンドからの注意メッセージを, libpq はデフォルトで標準エラー出力に出力します. もちろん,わずかですが libpq 自身が生成するエラーメッセージも, 同じように出力されます. この動作は,メッセージテキストに対して何らかの処理をするコールバック関数 (警告プロセッサ)を用意すれば,置き換えることができます. このコールバック関数には,エラーメッセージのテキスト(末尾に改行を含む)と, PQsetNoticeProcessor に渡された void 型のポインタがそのまま 渡されます. (必要であれば,このポインタをアプリケーション固有の状態を知るために使います) デフォルトの警告プロセッサは単純なものです:
static void defaultNoticeProcessor(void * arg, const char * message) { fprintf(stderr, "%s", message); }
特定の警告プロセッサを使うには,PGconn オブジェクトを生成したのちに, PQsetNoticeProcessor を呼び出すだけです.