“确保每个孩子在完成之前等待 n 秒(其中 n 是孩子 PID 的最后一位)”
例子:
儿童 PID: 5023 //最后一位 = 3 Sleep(3)
如何从 PID 中提取最后一位数字?
谢谢大家!
如果 PID 存储在名为 的变量中x
,则可以找到最后一位x % 10
。
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()
,
用于mod 10
获取值,例如:
int a = 123;
printf("%d\n", a % 10)
输出:
3
当然,您将需要 pid 而不是 a.