[pgsql-jp: 27853] Re: バックエンドのプロセスIDを取得したい

Tatsuo Ishii t-ishii @ sra.co.jp
2002年 10月 31日 (木) 16:02:35 JST


石井です.

> > org.postgresql.Connection の pid がそれかとも思いましたが、
> > 期待したものではなさそうでした(数値が違ったため)。
> 
> すみません。まさにコレでした。
> エンディアン変換(リトルtoビッグ)したら OK でした。
> 
> 数値が違うだけで、より汎用的な(無かったけど) current_pid() 
> を探しはじめてしまったのが失敗でした。
> でも、ほんとはこっちのやり方の方が欲しいですけどね。

要するにgetpid(2)呼び出す関数を作ればいいわけですが,getpid()のように
引数がいらず,かつ戻値がスカラーであるような関数は,「プログラムレス」:-) 
でC関数が安直に作れます.

test=# CREATE FUNCTION getpid() RETURNS INTEGER AS '/lib/libc.so.6' LANGUAGE 'c';
CREATE
test=# select getpid();
 getpid 
--------
  11107
(1 row)

当然のことながら,/lib/libc.so.6 の部分はお使いのプラットフォームに合
わせてください.
--
Tatsuo Ishii



pgsql-jp メーリングリストの案内