zoukankan      html  css  js  c++  java
  • 输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)

    [cpp] view plain copy
     
    1. void DumpEnvironmentStrings()  
    2. {  
    3. #define MAX_ENVIRONMENT_NAME_LENGTH     (128)  
    4. #define MAX_ENVIRONMENT_VALUE_LENGTH    (1024)  
    5.     LPTSTR lpszEnvString = GetEnvironmentStrings();  
    6.     if(NULL == lpszEnvString)  
    7.     {  
    8.         return ;  
    9.     }  
    10.   
    11.     TCHAR* pEnvBlock = lpszEnvString;  
    12.     const TCHAR szToken = _T('=');  
    13.     TCHAR szName[MAX_ENVIRONMENT_NAME_LENGTH] = {0};  
    14.     TCHAR szValue[MAX_ENVIRONMENT_VALUE_LENGTH] = {0};  
    15.     while('' != *pEnvBlock)  
    16.     {  
    17.         if(szToken == *pEnvBlock)  
    18.         {  
    19.             pEnvBlock += _tcslen(pEnvBlock) + 1;  
    20.             continue;  
    21.         }  
    22.         TCHAR* pToken = _tcschr(pEnvBlock, szToken);  
    23.         if(NULL == pToken)  
    24.         {  
    25.             break;  
    26.         }  
    27.         memset(szName, 0, sizeof(szName));  
    28.         memset(szValue, 0, sizeof(szValue));  
    29.         StringCchCopyN(szName, _countof(szName), pEnvBlock, pToken - pEnvBlock);  
    30.         StringCchPrintf(szValue, _countof(szValue), _T("%s"), pToken + 1);  
    31.         _tprintf(_T("%s : %s "), szName, szValue);  
    32.         pEnvBlock += _tcslen(pEnvBlock) + 1;  
    33.     }  
    34.     FreeEnvironmentStrings(lpszEnvString);  
    35.     lpszEnvString = NULL;  
    36. }  
    37.   
    38. // 测试代码  
    39. #include "stdafx.h"  
    40. #include <Windows.h>  
    41. #include <strsafe.h>  
    42.   
    43. int _tmain(int argc, _TCHAR* argv[])  
    44. {  
    45.     DumpEnvironmentStrings();  
    46.     return 0;  
    47. }  
     
     http://blog.csdn.net/visualeleven/article/details/8122081
  • 相关阅读:
    设计模式系列
    Python3 系列之 可变参数和关键字参数
    设计模式系列
    【HANA系列】SAP HANA ODBC error due to mismatch of version
    【FICO系列】SAP FICO FS00修改科目为未清项目管理
    【FIORI系列】SAP OpenUI5 (SAPUI5) js框架简单介绍
    【HANA系列】SAP HANA SQL获取当前日期加若干天后的日期
    【HANA系列】SAP HANA SQL获取本周的周一
    【HANA系列】SAP HANA SQL获取当前日期
    【HANA系列】SAP HANA SQL获取当前日期最后一天
  • 原文地址:https://www.cnblogs.com/findumars/p/6002320.html
Copyright © 2011-2022 走看看