我正在编写一个在L.CbPQ中封装LBPQ的库,当我执行一个查询,比如DROP SCHEMA IF EXISTS bobbob不存在时,LBPQ输出

"NOTICE:  schema "bob" does not exist, skipping"

进入我的终端,但随后成功。类似地,如果我用id serial primary key创建一个表,它会打印一个自动生成序列的通知。
我怎样才能阻止它把这个打印到终端上?如果用户需要,我的库中有函数来获取这些信息,但它不应该像这样直接输出到终端。
我在PQexecParams()PQconnectdb()等文档中没有看到任何内容。

最佳答案

参见手册中的libpq - notice processing。您需要提供一个通知处理器来替换默认处理器。
默认的通知处理程序是:

static void
defaultNoticeProcessor(void *arg, const char *message)
{
    fprintf(stderr, "%s", message);
}

关于c - libpq将通知输出到终端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12504325/

10-11 05:52