提取孩子的PID的最后一位数

时间:2013-08-27 12:56:48

标签: c linux

“确保每个孩子在完成之前等待n秒(在哪里 n是孩子PID的最后一位数“)

示例:

子PID:5023 //最后一位= 3 睡觉(3)

如何从PID中提取最后一位数?

谢谢大家!

4 个答案:

答案 0 :(得分:4)

如果PID存储在名为x的变量中,则最后一位数字可以设为x % 10

答案 1 :(得分:0)

使用mod 10获取值,例如:

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

输出:

3

当然你需要pid而不是a。

答案 2 :(得分:0)

使用modulo

int lastDigit = pid % 10;

但是要小心,如果最后一个数字是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()变量为负数