PQstatusは、接続の状態を返す。
https://www.postgresql.jp/document/9.3/html/libpq-status.html
/* ヘッダファイルのインクルード */ #include <stdio.h> /* 標準入出力 */ #include <libpq-fe.h> /* libpqフロントエンド */ /* main関数 */ int main(void){ /* 変数の宣言 */ PGconn *con; /* PGconnポインタcon */ /* DB接続 */ con = PQconnectdb("host=localhost dbname=testuser1db user=testuser1 password=hogehoge"); /* PQconnectdbでtestuser1dbに接続. */ if (PQstatus(con) == CONNECTION_OK){ /* 接続成功 */ printf("CONNECTION_OK\n"); /* "CONNECTION_OK"を出力. */ PQfinish(con); /* PQfinishでconの接続を終了. */ return 0; /* 0を返して正常終了. */ } else if (PQstatus(con) == CONNECTION_BAD){ /* 接続失敗 */ printf("CONNECTION_BAD\n"); /* "CONNECTION_BAD"を出力. */ return -1; /* -1を返して異常終了. */ } }
passwordが間違っていると、
$ vi main.c $ gcc main.c -o main -lpq $ ./main CONNECTION_BAD $
失敗だが、
これなら、
$ vi main.c $ gcc main.c -o main -lpq $ ./main CONNECTION_OK $
合っているので成功。
Sample/libpq/PQstatus/PQstatus/src/PQstatus at master · bg1bgst333/Sample · GitHub