C ++ - 处理信息

时间:2011-10-17 10:10:08

标签: c++ process

我正在编写一个跨平台程序,该程序需要有关正在运行的程序的简单信息:process nameprocess idthread id

process idthread id很容易在每个平台上运行,使用预处理器指令应该这样做。

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

我想知道是否有人有一个简单的方法来做到这一点?官方的升级版本没有实现此功能..不幸的是:(

2 个答案:

答案 0 :(得分:2)

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

Linux标准方式正在研究/proc并解析结果 Windows方式正在使用sick API

答案 1 :(得分:2)

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