2009-02-26 10 views
0

LinuxのpsコマンドをC言語で開発できますか?psコマンドのCコード

または私を助ける参考サイトはありますか?

+0

お探しのものをご指定ください。 –

+1

私は彼女がプロセスのリストを与えるコマンドのようにpsを意味すると思いますか? –

+1

Linuxはオープンソースで、psコマンドのソースを読んだだけです。 – a2800276

答えて

1

Linux /procファイルシステムを調べてください。トピックhereに関する良い記事があります。

3

ソースがどのように実装されているか見ていないのですか?私は/ procのすべての形式を説明するために、SOの質問では望めません。だから、存在するものを勉強することを強くお勧めします。

これは驚くほど宿題のようです。その後、質問をして自由に感じる。..それを研究、コードhereを探す:)

あなたはそれを再やろうとしている場合は、引数は意味を成してください:

********* simple selection ********* ********* selection by list ********* 
-A all processes      -C by command name 
-N negate selection     -G by real group ID (supports names) 
-a all w/ tty except session leaders -U by real user ID (supports names) 
-d all except session leaders   -g by session OR by effective group name 
-e all processes      -p by process ID T all processes on this terminal  -s processes in the sessions given a all w/ tty, including other users 
-t by tty g OBSOLETE -- DO NOT USE -u by effective user ID (supports names) r only running processes 
U processes for specified users x processes w/o controlling ttys  t by tty 
*********** output format ********** *********** long options *********** 
-o,o user-defined -f full   --Group --User --pid --cols --ppid 
-j,j job control s signal   --group --user --sid --rows --info 
-O,O preloaded -o v virtual memory --cumulative --format --deselect 
-l,l long   u user-oriented --sort --tty --forest --version 
-F extra full X registers  --heading --no-heading --context 
        ********* misc options ********* 
-V,V show version  L list format codes f ASCII art forest 
-m,m,-L,-T,H threads S children in sum -y change -l format 
-M,Z security data  c true command name -c scheduling class 
-w,w wide output  n numeric WCHAN,UID -H process hierarchy 

うん、私たちが必要それらのオプション..テキストに対抗することなくangry fruit salad :)

11

http://procps.sourceforge.net/は、Linuxシステムで使用されるpsのバージョンのソースコードを持っています。それを調べることはあなたにとって有用かもしれません。

+1

このプロジェクトは死亡したようです。新しいプロジェクトはhttps://gitlab.com/procps-ng/procpsです – dolmen

4

/procファイルシステムを解析して、実行中のプロセスのリストを調べることができます。

procpsのコードを確認してください。それはあなたにこれを行う方法のいくつかのアイデアを与えるはずです。

4

これらのプログラムで行われたsyscallのシーケンスを調べるのに役立ちます。これを行うにはstraceを使用してください。私はpsが行うことは、/procを通してすべてのプロセスとその情報を収集していると思います。

procpsのサイトをご覧になり、コードをダウンロードしてどのように行ったかを見てください。

3

psがどのように情報を取得しているかは標準的ではありません(実際には、オペレーティングシステムファミリごとに異なる方法で実行されます)。このように、新しいOSごとに新しいリリースごとに変更される可能性があります。 psが提供する情報が必要な場合は、実際にpsを呼び出して出力を解析することを検討する必要があります。はい、私はそのような方法で作業が醜いとプロのように見えるが、それは多くのアプリケーションではかなりlovelyですが、実際にはかなりクロスプラットフォームで、psの出力形式が将来変更される可能性は低いです)それはpsが情報を取得する方法が変わるかもしれないからです。

関連する問題