“确保每个孩子在完成之前等待n秒(在哪里 n是孩子PID的最后一位数“)
示例:
子PID:5023 //最后一位= 3 睡觉(3)
如何从PID中提取最后一位数?
谢谢大家!
答案 0 :(得分:4)
如果PID存储在名为x
的变量中,则最后一位数字可以设为x % 10
。
答案 1 :(得分:0)
使用mod 10
获取值,例如:
int a = 123;
printf("%d\n", a % 10)
输出:
3
当然你需要pid而不是a。
答案 2 :(得分:0)
答案 3 :(得分:0)
PID通常是pid_t类型的整数类型,来自" sys / types.h"。因为它应该是签名类型推荐
unsigned LastDigit =((unsigned)pid)%10;
这将确保您的mod不会报告否定结果,如-57%10 - > -7。
sleep(t)
需要unsigned
个参数。如果您的变量pid
采用负值(如-1,sleep(pid % 10)
,则会在长时间内休眠。
[编辑] pid_t
是签名类型。从pid_t
,
fork()
变量为负数