• ベストアンサー

Linux環境におけるgetprocs関数

お疲れ様です、初めてLinux環境で開発(C言語)している者です。 流用元(HP-UX環境/C言語)のソースをコンパイルしたところ、 「getprocs」(プロセス情報の取得?)という関数でエラーになりました。 <procinfo.h>というヘッダをincludeしているのですが、 このヘッダファイルも見当たりません。 Linuxでは、使用できない関数なのでしょうか? また、代替手段などあるのでしょうか? getprocs自体、ネットで調査してもあまり有力な情報をヒットできず、苦慮してます。 ご存じの方おりましたら、ご教授よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

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
ohigechan
質問者

お礼

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

その他の回答 (1)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

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

ohigechan
質問者

お礼

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

関連するQ&A

専門家に質問してみよう