- ベストアンサー
Linux環境におけるgetprocs関数
お疲れ様です、初めてLinux環境で開発(C言語)している者です。 流用元(HP-UX環境/C言語)のソースをコンパイルしたところ、 「getprocs」(プロセス情報の取得?)という関数でエラーになりました。 <procinfo.h>というヘッダをincludeしているのですが、 このヘッダファイルも見当たりません。 Linuxでは、使用できない関数なのでしょうか? また、代替手段などあるのでしょうか? getprocs自体、ネットで調査してもあまり有力な情報をヒットできず、苦慮してます。 ご存じの方おりましたら、ご教授よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
HP-UXについては参考URLからPFDでマニュアルを参照できます。 「システムコール(vol5)」が該当するかと思います。 で、HP-UXでは pstat_getproc() なので getprocs() はAIXのシステムコールだと思います。 Linuxでは、それに近い関数は用意されていなかったと思いますので、流用元のプログラムが取得している情報を調査し、その情報を取得する代替手段を1つ1つ検討していく必要がありそうですね。 自分も似たようなプログラムを保守用に作成しましたが、よい関数が見つからず、ps(pstree)等のコマンド結果を編集するシェルスクリプトをsystem文で起動するという荒業で逃げてしまいました。顧客に収める製品であれば、そんなことはできないですね・・。
その他の回答 (1)
- rinkun
- ベストアンサー率44% (706/1571)
確かにgetprocsで検索してもAIX関係ばっかやね。標準関数でないのは確かだから、流用元だっていうHP-UXのマニュアルで仕様を確認するしかないかと。 プロセス情報はLinuxだと/procファイルシステムを参照すれば良いと思うけど、Linuxでもバージョンによって/procの内容は異なる可能性が高いから移植性には要注意だね。
お礼
ありがとうございました。 流用元OSは伝え聞きで、ちゃんと確認してなかったのですが、どうやらAIXのようですね。確認してみます。
お礼
ありがとうございました。 流用元OSは伝え聞きで、ちゃんと確認してなかったのですが、どうやらAIXのようですね。確認してみます。