gpt4 book ai didi

c++ - 如何在C++中可移植地获取进程ID?

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:32 25 4
gpt4 key购买 nike

在标准 C++ 中,我们可以获得当前执行线程的 ID:std::this_thread::get_id() .但在撰写本文时,该语言并没有固有的过程概念。不过,我仍然想要我的进程 ID。

那么 - 在现代 C++ 中获取正在运行的进程 ID 的最便携、标准友好(尽管不是语言标准)的方法是什么?

注意事项:

  • 我意识到有些机器没有进程,但是,它们也不一定有线程......所以没有理由不存在具有退化情况回退功能的跨平台功能。
  • 我至少需要一个符合 POSIX 的操作系统和 Windows 的实际进程 ID。

最佳答案

Boost.Interprocessboost::interprocess::ipcdetail::get_current_process_id .

ACE library提供各种操作系统相关的功能,并已移植到许多平台。参见 here一个列表。图书馆的ACE_OS命名空间提供了一个 getpid实现。

一般来说,没有通用的方法来获取每个平台上的进程 ID,因为操作系统进程管理的这一方面超出了 C++ 语言的范围。

关于c++ - 如何在C++中可移植地获取进程ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50086895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com