-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

PID 通常是 pid_t 类型的整数类型,来自“sys/types.h”。因为它应该是签名类型推荐

无符号 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 回答
0

用于mod 10获取值,例如:

int a = 123;
printf("%d\n", a % 10)

输出:

3

当然,您将需要 pid 而不是 a.

于 2013-08-27T12:59:56.920 回答
0

使用模数

int lastDigit = pid % 10;

不过要小心,如果最后一个数字是 0,你会遇到问题!

于 2013-08-27T13:00:50.910 回答