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_t
。pid_t
types.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
整数です。