-4

「すべての子が終了する前に n 秒待機することを確認します (n は子の PID の最後の桁です)」

例:

子 PID: 5023 //最後の桁 = 3 Sleep(3)

PIDから最後の桁を抽出するにはどうすればよいですか??

みんなありがとう!

4

4 に答える 4

4

PID が という変数に格納されている場合x、最後の桁は として見つけることができますx % 10

于 2013-08-27T12:58:23.207 に答える
0

モジュロを使用

int lastDigit = pid % 10;

ただし、最後の桁が 0 の場合、問題が発生するので注意してください。

于 2013-08-27T13:00:50.910 に答える
0

PID は通常、「sys/types.h」の整数型である pid_t 型です。署名されたタイプの推奨事項である必要があるため

符号なし LastDigit = ((符号なし) pid) % 10;

これにより、mod が -57%10 --> -7 のような否定的な結果を報告しないことが保証されます。

sleep(t)パラメータを取りunsignedます。変数pid, が -1, のような負の値を取ると、長時間sleep(pid % 10)スリープ状態になります。

[編集]pid_tは署名付きタイプです。などのpid_t関数からエラーが返されると、変数は負になりますfork()

于 2013-08-27T13:05:45.273 に答える