2

我正在编写一个在 C 中包装 libpq 的库。当我执行类似的查询DROP SCHEMA IF EXISTS bob并且bob不存在时,libpq 输出

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

进入我的终端,但随后成功。同样,如果我用它创建一个表,id serial primary key则会打印一条通知,说明它自动生成了一个序列。

如何停止将其打印到终端中?如果用户需要,我的库中有获取此类信息的功能,但它不应该像这样输出到终端。

我在文档中没有看到任何内容PQexecParams()PQconnectdb()等等。

4

2 回答 2

4

请参阅手册中的libpq - 通知处理。您需要提供通知处理器来替换默认处理器。

默认通知处理器很简单:

static void
defaultNoticeProcessor(void *arg, const char *message)
{
    fprintf(stderr, "%s", message);
}
于 2012-09-19T23:47:32.427 回答
0

一种选择是更改它的标准输出(和/或标准错误)。

于 2012-09-19T23:42:41.440 回答