问题: segmentation fault 为什么会这样呢?
运行环境:postgres-8.3.1 数据库 ecpg-4.4.0 debian-2.6.18-6-686
操作步骤:1)ecpg Test_ecpg.pgc
2)gcc -Wall -g -o test Test_ecpg.c -I/usr/local/pgsql/include -lecpg -lpq
3)./test
结果:
segmentation fault
PS:以上操作都是以
postgres身份,数据库和表都是没有问题的.
------------------------------------------------------------------------------------
代码如下:
#include <stdio.h>
EXEC SQL INCLUDE sqlca;
EXEC SQL BEGIN DECLARE SECTION;
int myid;
char *name = "lee";
char *db = "
test@127.0.0.1";
char *user = "postgres";
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR SQLPRINT;
EXEC SQL WHENEVER NOT FOUND DO print_not_found();
void print_not_found()
{
printf( "No results were returned.
" );
}
int main()
{
EXEC SQL CONNECT TO :db AS conn USER :user;
if( !ECPGstatus( __LINE__, "conn") )
{
fprintf( stderr, "unable to connect to database.
" );
return 1;
}
EXEC SQL SELECT id INTO :myid FROM person WHERE name = :name; /*此句导致了段错误,通过gdb跟踪得知*/
if( sqlca.sqlcode == 0 )
printf( "ID of %s: %d
", name, myid );
EXEC SQL DISCONNECT conn;
return 0;
}
--------------------------------------------------------------------------------------------------------------------------
各位大虾帮忙.