win32控制台程式中可在main函式引數列表中加入tchar*env 引數,進入main函式時,env引數被賦值,含義為當前程序環境變數,資料型別為字串指標陣列,每個指標都指向乙個不同的環境變數(其定義採用常規的「名稱=值」的形式)。在此陣列中,指向最後乙個環境變數字串的指標後面,會有乙個null指標,表明這是陣列的末尾。
每個字串第乙個部分為此環境變數名稱,後跟乙個等號,之後是希望賦值給此名稱。需要注意的是除了第乙個以等號開頭的字串,可能還有其它以等號開頭的字串不作為環境變數使用,可能與程序當前目錄關聯。
下面演示通過以上兩種方式訪問當前程序環境變數。
// an highlighted block
// getenvironmentstringsdemo.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include
#include
#include
using namespace std;
void
dumpenvstrings()
hr=stringcbcopyn
(szvalue,
max_path
,pszpos,
_tcslen
(pszpos)+1
);if(
succeeded
(hr)
)else
if(hr==
strsafe_e_insufficient_buffer
)else
}else
current++
;while
(*pszcurrent!=
text
('\0'))
pszcurrent++
; pszcurrent++;if
(*pszcurrent==
text
('\0'))
break;}
freeenvironmentstrings
(penvblock);}
void
dumpenvvariables
(ptstr penvblock)
else}}
int _tmain
(int argc, _tchar* ar**[
],_tchar*env)
reparent指定程序到當前程序
作者 李先靜 今 天遇到乙個問題,需要監視某個應用程式的退出事件,並得到它的退出碼。waitpid只能監視子程序,對其它程序沒有效果,怎麼才能reparent乙個 程序呢?我在核心裡找了半天也沒有找到相應的系統呼叫,後來想到偵錯程式都可以,那一定有辦法。偵錯程式是用ptrace實現的,我試了一下,發...
reparent指定程序到當前程序
作者 李先靜 今 天遇到乙個問題,需要監視某個應用程式的退出事件,並得到它的退出碼。waitpid只能監視子程序,對其它程序沒有效果,怎麼才能reparent乙個 程序呢?我在核心裡找了半天也沒有找到相應的系統呼叫,後來想到偵錯程式都可以,那一定有辦法。偵錯程式是用ptrace實現的,我試了一下,發...
獲得當前程序名
用快照取得當前的程序名,下面是測試小例子。include 需要匯入tlhelp32.h moduleentry32 mcurprocessmodule32 mcurprocessmodule32.dwsize sizeof moduleentry32 最好手動初始化,因為會取前4位元組作為長度。ha...