我正在编写一个用C语言包装libpq的库。当我执行DROP SCHEMA IF EXISTS bob
之类的查询,并且bob
不存在时,libpq输出
"NOTICE: schema "bob" does not exist, skipping"
进入我的终端,但随后成功。同样,如果我使用id serial primary key
创建一个表,它会打印一个通知,表明它会自动生成一个序列。
如何停止将其打印到终端?我的库中有函数来获取这些信息,如果用户需要它,但它不应该像这样只输出到终端。
我在PQexecParams()
或PQconnectdb()
等文档中没有看到任何内容。
答案 0 :(得分:4)
请参阅手册中的libpq - notice processing。您需要提供通知处理器来替换默认处理器。
默认通知处理器只是:
static void defaultNoticeProcessor(void *arg, const char *message) { fprintf(stderr, "%s", message); }
答案 1 :(得分:0)
一种选择是更改它的标准输出(和/或stderr)。