【发布时间】:2017-08-15 08:57:19
【问题描述】:
我正在编写一个以 PID 作为参数的方法。在 Windows 上它可以是负数吗?如果不能,我会在我的方法中添加一个否定检查。但是我在互联网上找不到信息。
【问题讨论】:
-
PID 是一个标识符,仅此而已。我不会想象在 Unix 或 Windows 中都有一个负 PID。您可以默认拒绝所有负 PID,并让用户自行调整。简单地说,不,不可能。
-
在所有 Windows 实现中 PID 是特殊全局句柄表中的句柄(可以映像该索引)。它永远不会是负数,并且始终具有
4*n的形式,其中 n some natural > 0。但是,您需要检查一下吗? -
@RbMm 依赖于实现细节只会在实现发生变化时导致问题。
-
@Richard - 我只是简单地解释一下当前的 pid 是什么。但是我根本不明白需要什么检查。
-
这不是一个非常明智的问题,您必须使用操作系统使用的相同数据类型。这是 DWORD,
unsigned int的别名。它没有签名。如果要验证参数,请以正确的方式进行,请使用 OpenProcess。或者你想用这个值做什么。