こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Linux環境におけるgetprocs関数

お疲れ様です、初めてLinux環境で開発(C言語)している者です。

流用元(HP-UX環境/C言語)のソースをコンパイルしたところ、
「getprocs」(プロセス情報の取得?)という関数でエラーになりました。
<procinfo.h>というヘッダをincludeしているのですが、
このヘッダファイルも見当たりません。

Linuxでは、使用できない関数なのでしょうか?
また、代替手段などあるのでしょうか?

getprocs自体、ネットで調査してもあまり有力な情報をヒットできず、苦慮してます。

ご存じの方おりましたら、ご教授よろしくお願いいたします。

投稿日時 - 2009-02-21 01:31:53

QNo.4735549

困ってます

質問者が選んだベストアンサー

HP-UXについては参考URLからPFDでマニュアルを参照できます。
「システムコール(vol5)」が該当するかと思います。
で、HP-UXでは pstat_getproc() なので getprocs() はAIXのシステムコールだと思います。

Linuxでは、それに近い関数は用意されていなかったと思いますので、流用元のプログラムが取得している情報を調査し、その情報を取得する代替手段を1つ1つ検討していく必要がありそうですね。

自分も似たようなプログラムを保守用に作成しましたが、よい関数が見つからず、ps(pstree)等のコマンド結果を編集するシェルスクリプトをsystem文で起動するという荒業で逃げてしまいました。顧客に収める製品であれば、そんなことはできないですね・・。

参考URL:http://docs.hp.com/ja/hpuxosmanpages.html

投稿日時 - 2009-02-21 15:05:01

お礼

ありがとうございました。
流用元OSは伝え聞きで、ちゃんと確認してなかったのですが、どうやらAIXのようですね。確認してみます。

投稿日時 - 2009-02-22 17:43:54

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

確かにgetprocsで検索してもAIX関係ばっかやね。標準関数でないのは確かだから、流用元だっていうHP-UXのマニュアルで仕様を確認するしかないかと。
プロセス情報はLinuxだと/procファイルシステムを参照すれば良いと思うけど、Linuxでもバージョンによって/procの内容は異なる可能性が高いから移植性には要注意だね。

投稿日時 - 2009-02-21 12:08:51

お礼

ありがとうございました。
流用元OSは伝え聞きで、ちゃんと確認してなかったのですが、どうやらAIXのようですね。確認してみます。

投稿日時 - 2009-02-22 17:43:27

あなたにオススメの質問