avatar
Mysterious PgSQL 8.3 crash# Database - 数据库
c*t
1
写 stored procedure 的时候,发现 sprintf, elog, ereport 等统统
会造成 crash 。可是 8.2.6 底下好好的。比如
strcpy (buffer, "test"); 执行没问题,但是
sprintf (buffer, "%s", "test"); 就 crash。
例如:
CREATE FUNCTION TCDB.t_create_table(cstring) RETURNS void
AS '/projects/workspace/tcdb/src/server/libmy_utils.dll', 't_create_table'
LANGUAGE C STRICT;
Datum t_create_table (PG_FUNCTION_ARGS)
{
char buffer[8192];
sprintf (buffer, "%s", "test"); // 这一行 crash
// strcpy (buffer, "test"); 没问题
puts (buffer
avatar
c*3
2
我用8.2.6; 刚接触PostgreSQL的C functions. 感觉是不一样。不一定是sprintf的问
题。初使化一下buffer试一下
avatar
c*t
3
Not that problem. The problem was library builder mismatch
(8.3 distribution was built using VC++, 8.2.6 was built using
MinGW).

【在 c*********3 的大作中提到】
: 我用8.2.6; 刚接触PostgreSQL的C functions. 感觉是不一样。不一定是sprintf的问
: 题。初使化一下buffer试一下

avatar
c*3
4
这我就不知道了。 我是在Linux 上用
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。