【发布时间】:2018-10-09 17:52:52
【问题描述】:
在标准 C++ 中,我们可以获得当前执行线程的 id:std::this_thread::get_id()。但在撰写本文时,该语言并没有固有的过程概念。不过,我仍然想要我的进程 ID。
那么 - 在现代 C++ 中获取正在运行的进程 ID 的最便携、标准友好(尽管不是语言标准)的方法是什么?
注意事项:
- 我意识到有些机器没有进程,但它们也不一定有线程......所以没有理由不存在具有退化情况后备的跨平台函数。
- 至少对于 POSIX 兼容的操作系统和 Windows,我需要一个实际的进程 ID。
【问题讨论】:
-
标准 C++ 没有进程 ID(或进程,就此而言)的概念。任何获取它的方法都必须是特定于操作系统的。想象一下你以某种方式设法获得了它——你会用它做什么(在可移植的 C++ 程序中)?练习的最终目标是什么?
-
“标准友好”是否意味着 “今天
boost,可能在未来某个时间std”? -
你打算用它做什么?
-
@Galik:一些进程间通信。
-
一台机器很可能有线程但没有进程(想想单任务控制器)。
标签: c++ pid portability