プロセスIDの範囲

プロセスIDの範囲

GNU / Linuxシステムでは正のPIDのみが表示されますが、カーネルパニックが発生するとPID = 0のプロセスに関する情報が表示されます。それは何ですか?

Minix 3では、否定的なPIDを持つプロセスを見ました。 MinixはPOSIX互換システムですが、POSIXは正のPIDのみを受け入れます。。それは何ですか?

プロセスIDを保持するには、Cでどの変数タイプを使用する必要がありますか?

答え1

1)これはポケットベルまたはスイッチです。PIDが0のプロセスは何ですか?

2) Minix を使ったことはありませんが、マニュアルには Minix の負の pid がカーネルプロセスを表すことが示されています。これは実際にカーネル実装の一部なので、これがPOSIXに準拠しているかどうかは言えません=)

3)あなたは使用する必要がありますpid_t

あなたの目標が最大の移植性であれば、POSIXを読んでください。

まず、getpid()関数はを返しますpid_tpid_ttypes.hで定義されています。

第二:

   ... blksize_t, pid_t, and ssize_t shall be signed integer types. ...

   The implementation shall support one or more  programming  environments
   in  which the widths of ..., pid_t, ... are no greater than the width
   of type long. The names of these  programming  environments  can  be 
   obtained using the confstr() function or the getconf utility.

だからあなたはpid_t値を保存しますlong。また、POSIXではpid_t整数です。

関連情報