私はユーザ空間で呼び出されるシステムコールを実装しています。 syscallはfooのtask_struct(グローバルポインタの現在)をアクセスし、その名前とpidを出力し、fooの親プロセス、fooの親の親プロセスなどに進みます。すべての名前とpidをinitプロセスのものまで出力します。LinuxではプロセスIDは負ではありませんか?
pid = 1はinit用に予約されています.pid = 0はswapper用に予約されています。
スワッパのtask_structによると、親プロセスはそれ自体です。
スワッパ(またはsched)は常にpid = 0を持ち、常にinitの親プロセスですか?
すべてのpidsは負ではありませんか?私はその仮定を立てても大丈夫ですか?
おかげで私はpid_tが定義されているかすぐにチェックします。 – Plazo
私はそれが署名されていると思います、 'fork'は' pid_t'を返します。これは '-1'でもかまいません。また、私はいくつかのヘッダーでそれを見て覚えていると思います。確認する必要があります。 Ofcは、プロセスIDが負の値になることを意味するものではありません。 –
署名されているだけです。しかし、エラーを返すためにはそうです:D –