0
子プロセスは、execlp
で実行される別のCプログラムです。マシンはUnixです。私は子プロセスがexeclp("ps", "ps", NULL)
でプロセステーブルにアクセスできることを知っていますが、どのようにして兄弟を決定できるのか分かりません。子プロセスが兄弟のPIDを取得することは可能ですか?
プロセスは非同期ですが、私は兄弟プロセスが実行されていることを知っています。
子プロセスは、execlp
で実行される別のCプログラムです。マシンはUnixです。私は子プロセスがexeclp("ps", "ps", NULL)
でプロセステーブルにアクセスできることを知っていますが、どのようにして兄弟を決定できるのか分かりません。子プロセスが兄弟のPIDを取得することは可能ですか?
プロセスは非同期ですが、私は兄弟プロセスが実行されていることを知っています。
子プロセスが兄弟のPIDを取得することは可能ですか?
プロトコルの種類を使用して親と話をすることなく、移植可能ではありません。いくつかのシステムでは、それはまったく不可能かもしれません。
まあ、[tag:c]に "* child *"をforkすることさえできません。だから、POSIX拡張を使ってCを意味すると仮定しよう。答えは** no **です。これは外部ツールや他のプラットフォーム固有のハッキングを呼び出すことなく可能です。これは[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)ですか? –
これを見る実用的な方法はありません(もちろん、psの出力を解析することはできますが、ugh)。あなたは、兄弟姉妹から兄弟姉妹まで、または親から子供まで、それを伝える必要があります。なぜあなたが知る必要があるかを教えてくれれば、より具体的にできるかもしれません。 – zwol
親のpidを取得するためにgetppidを実行してから、現在の子プロセスのpid(getpid)と一致しない有効なpidを打つまで、1を追加することは可能でしょうか? pidが有効かどうかを確認する方法はありますか? もっと実用的な方法は、子供が兄弟のデータを親に頼んで返す親パイプを持っていることですが、私は興味があります。 –