2011-10-17 69 views
0

我正在编写一个跨平台程序,它需要运行程序的简单信息:process name,process id,thread idC++ - 进程信息

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

但是,对于process name,我查看了互联网,我没有发现任何简单和有点跨平台,这并不奇怪。由于我正在写一个使用起来非常简单的图书馆,因此我无法访问argv[0],这正是我想要的。

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

+0

*“使用预处理器指令应该这样做”* - 这是什么意思? – tenfour

+0

#ifndef _WIN32/* Linux处理*/#else/* Win处理*/#endif – Rippalka

回答

2

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

Linux的标准方法是寻找到/proc和分析结果
Windows操作方式是使用它的sick API

+0

谢谢,我想我可能会这样做。我希望提振会很快覆盖它。 – Rippalka

2

为了补充@Andrejs Cainikovs的回答,Windows的解决方案是GetModuleFileName(NULL, charBuffer, elementCount)一个简单的电话:

+0

感谢提示:) – Rippalka