2012-03-11 25 views
2

私はC/C++を使ってLinuxでプログラミングしています。私は問題がある、親プロセスで子プロセスの数を取得するために関数や何かを見つけることを試みている。親プロセスの子プロセスの数C/C++、LINUX

ヘルプ私にしてください おかげ

+0

親は、フォークされたときにそれを数えてもらえませんか? –

答えて

1

私はPOSIXはこのための関数を定義していますかどうかわからないんだけど、あなたは常に、グローバル変数を自分でそれらを数えるだけで、親のすべてのフォークの後に1を追加し、設定することができますそれ

+0

グローバル変数を使用することはできません。子コードはコード全体とグローバル変数が無用になります。 –

+2

@VaheMusinyan:そういうわけで、彼は「子供のために0に設定する」と言いました。 –

+0

まだ鐘が鳴りません。 0に設定すると、グローバル変数には影響しません。誰か私にいくつかのコード例を教えてもらえますか –

1
int globalVariable = 0; 

main() { 
    pid_t pID = fork(); 
    if (pID == 0) { //child 
    globalVariable = 0; 
    cout << "Child Process" << end; 
    } 
    else if (pID < 0) { //failed to fork 
    cerr << "Failed to fork" << endl; 
    exit(1); 
    // Throw exception 
    } 
    else { // parent 
    cout << "Parent Process:"; 
    ++globalVariable; 
    } 
}     
0

...子供に0にあなたはすべての子プロセスを一覧表示する--ppidオプションで「PS」コマンドを使用して、トイレ-l

PSを使用してそれらを数えることができます - ppid | wc -l

1

procfsを使用してください:/proc/[mypid]/taskのディレクトリの数を数え、子プロセスの数が開始されています。

詳細については、proc(5)を参照してください。

関連する問題