在标准C ++中,我们可以获取当前执行线程的id:std::this_thread::get_id()
。但在撰写本文时,语言并没有固有的过程概念。不过,我仍然想要我的进程ID。
那么 - 在现代C ++中获取正在运行的进程ID的最便携,标准友好(尽管不是语言标准)的方法是什么?
注意:
答案 0 :(得分:4)
那么,那么,什么是最便携,标准友好的方式来获得正常运行的流程' (现代)C ++中的ID?
正如Igor的评论所说,没有标准的C ++方式,所以最便携,标准友好的方式是getpid
。
您无法找到可在更广泛的平台上使用的标准定义的任何其他内容。
答案 1 :(得分:3)
Boost.Interprocess有boost::interprocess::ipcdetail::get_current_process_id。
ACE library提供各种与OS相关的功能,并已移植到许多平台。有关列表,请参阅here。库的ACE_OS命名空间提供了getpid实现。
通常,没有通用的方法可以在每个平台上获取进程ID,因为操作系统进程管理的这个方面超出了C ++语言的范围。