2011-10-17 104 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