首页 > 代码库 > 输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)
输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)
[cpp] view plain copy
- void DumpEnvironmentStrings()
- {
- #define MAX_ENVIRONMENT_NAME_LENGTH (128)
- #define MAX_ENVIRONMENT_VALUE_LENGTH (1024)
- LPTSTR lpszEnvString = GetEnvironmentStrings();
- if(NULL == lpszEnvString)
- {
- return ;
- }
- TCHAR* pEnvBlock = lpszEnvString;
- const TCHAR szToken = _T(‘=‘);
- TCHAR szName[MAX_ENVIRONMENT_NAME_LENGTH] = {0};
- TCHAR szValue[MAX_ENVIRONMENT_VALUE_LENGTH] = {0};
- while(‘\0‘ != *pEnvBlock)
- {
- if(szToken == *pEnvBlock)
- {
- pEnvBlock += _tcslen(pEnvBlock) + 1;
- continue;
- }
- TCHAR* pToken = _tcschr(pEnvBlock, szToken);
- if(NULL == pToken)
- {
- break;
- }
- memset(szName, 0, sizeof(szName));
- memset(szValue, 0, sizeof(szValue));
- StringCchCopyN(szName, _countof(szName), pEnvBlock, pToken - pEnvBlock);
- StringCchPrintf(szValue, _countof(szValue), _T("%s"), pToken + 1);
- _tprintf(_T("%s : %s\r\n\r\n"), szName, szValue);
- pEnvBlock += _tcslen(pEnvBlock) + 1;
- }
- FreeEnvironmentStrings(lpszEnvString);
- lpszEnvString = NULL;
- }
- // 测试代码
- #include "stdafx.h"
- #include <Windows.h>
- #include <strsafe.h>
- int _tmain(int argc, _TCHAR* argv[])
- {
- DumpEnvironmentStrings();
- return 0;
- }
http://blog.csdn.net/visualeleven/article/details/8122081
输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。