postgreSQLのプログラミングI/F (C言語篇)
あとはC言語I/FとJDBCが使えれば実用上問題なし。
apt-get install postgresql-devel でC言語I/Fがインストールされた。
manページをつかえるようにする方法が分らないが、libpq-fe.hをみたかぎりでは、それほど沢山のAPIがあるわけでは無さそうだ。
includeのパスもlibのパスも標準で問題無し。
データーベースをオープンしSELECTしてクローズするだけのもので試す。
#include <libpq-fe.h> int main( int argc, char* argv[] ) { PGconn *connection = PQconnectdb( "dbname=<<dbname>>" ); if( PQstatus( connection ) == CONNECTION_OK) { .... } else { printf( "connection failed\n" ); } PQfinish( connection ); return 0; }
とくにむずかしいところはなし。
gcc pqtest.c -lpq
でコンパイルOK。
pg_config というツールがあり、これはgnome-configとか、gtk-configみたいに使うようだ。ヘッダやライブラリ、あるいはツールの格納されているディレクトリを標準出力にプリントする。
しかし、とくに使わずともコンパイルできた。
リンクされている依存ライブラリをみてみると、かなりのものが付いている。
$ ldd a.out linux-gate.so.1 => (0x006bf000) libpq.so.3 => /usr/lib/libpq.so.3 (0x007a3000) libc.so.6 => /lib/libc.so.6 (0x00111000) libssl.so.4 => /lib/libssl.so.4 (0x00486000) libcrypto.so.4 => /lib/libcrypto.so.4 (0x00c4f000) libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00d83000) libcom_err.so.2 => /lib/libcom_err.so.2 (0x00c33000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x03334000) libresolv.so.2 => /lib/libresolv.so.2 (0x00bcc000) libnsl.so.1 => /lib/libnsl.so.1 (0x0331f000) libpthread.so.0 => /lib/libpthread.so.0 (0x0096c000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0065d000) libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00c38000) libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00d47000) libdl.so.2 => /lib/libdl.so.2 (0x0079d000)c libz.so.1 => /usr/lib/libz.so.1 (0x0087d000)