dポイントプレゼントキャンペーン実施中!

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

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

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

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

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/22 17:43

確かにgetprocsで検索してもAIX関係ばっかやね。

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

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

お礼日時:2009/02/22 17:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!