[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 メーリングリストの案内