【问题标题】:Can a PID be negative on Windows?Windows 上的 PID 可以为负数吗?
【发布时间】: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。或者你想用这个值做什么。

标签: windows process pid


【解决方案1】:

我们只知道它们不能为 0 或 -1(请参阅 Invalid thread and process IDs)。

所以不要指望他们是积极的(或者,multiples of four)。

【讨论】:

  • 如果在将来的某些实施中允许否定,那么我们可能都幸运地得到了原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 2021-09-21
  • 2019-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多