c++ -进程信息

C++ - Process infos

本文关键字:信息 进程 c++      更新时间:2023-10-16

我正在编写一个跨平台程序,需要关于运行程序的简单信息:process name, process id, thread id

process idthread id在每个平台上都很容易获得,使用预处理器指令应该可以做到。

但是对于process name,我在互联网上看了看,我没有找到任何容易的东西,有点跨平台,这并不奇怪。由于我正在编写一个必须非常简单使用的库,因此我无法访问argv[0],这正是我想要的。

我想知道是否有人有一个简单的方法来做到这一点?此功能未在官方boost版本中实现。不幸的是:(

好吧,我怀疑你会找到一个好的跨平台解决方案。
最有可能的是,你最终会在#ifdef中使用一些特定于平台的代码。

Linux标准方法是查找/proc并解析结果。
Windows way正在使用它的病态API

为了补充@Andrejs Cainikovs的答案,Windows的解决方案是简单地调用GetModuleFileName(NULL, charBuffer, elementCount):