zoukankan      html  css  js  c++  java
  • 环境变量(获取,暂无设置的代码)

    1、参考网址: C_C++ 获取系统环境变量方法. - algorithmic - 博客园.html(https://www.cnblogs.com/algorithmic/archive/2012/09/23/2698604.html

    // EnvConsole_VC.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <stdio.h>
    #include <stdlib.h>
    
    // ZC: 取某个环境变量
    
    //int main()
    //{
    //    printf("PATH : %s
    ", getenv("PATH"));
    //    printf("HOME : %s
    ", getenv("HOME"));
    //    printf("ROOT : %s
    ", getenv("ROOT"));
    //
    //}
    
    #include <stdio.h>
    //#include <unistd.h>// Posix
    #include <windows.h>
    
    // ZC: 遍历所有环境变量
    
    //extern char **environ;
    //int main(int argc, char *argv[])
    //{
    //    char **p = environ;
    //    while (*p != NULL)
    //    {
    //        printf("%s (%p)
    ", *p, *p);
    //        *p++;
    //    }
    //    system("pause");
    //    return 0;
    //}
    
    #include <string>
    #include <vector>
    using namespace std;
    
    void SplitStr_ZZ(vector<string>& _vtr, char* _pc, char* _pcPattern);
    int WriteLog(char* _pcFullFileName, char* _pcWrite, int _iWriteLen, unsigned long * _pdwWritten);
    
    void Env_All_1(vector<string>& _vtr);
    void Env_All_2(vector<string>& _vtrOut, vector<string>& _vtrIn);
    
    int main(int argc, char *argv[])
    {
        vector<string> vtr1;
        vector<string> vtr2;
        Env_All_1(vtr1);
        Env_All_2(vtr2, vtr1);
    
        string str;
        for (int i = 0; i < vtr2.size(); i++)
            //printf("%s
    ", vtr2.at(i).c_str());
            str += vtr2.at(i) + "
    ";
    
        char buf[256] = { 0 };
        SYSTEMTIME sys;
        GetLocalTime(&sys);
        sprintf(buf, "D:\HuanJingBianLiang.%02d%02d%02d.%d.txt", sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);
    
        DWORD dwWriteLen = 0;
        WriteLog(buf, (char*)str.c_str(), str.length(), &dwWriteLen);
    }
    
    
    
    void Env_All_1(vector<string>& _vtr)
    {
        _vtr.clear();
    
        char **p = environ;
        while (*p != NULL)
        {
            _vtr.push_back(string(*p));
            //printf("%s (%p)
    ", *p, *p);
    
            *p++;
        }
    }
    
    void Env_All_2(vector<string>& _vtrOut, vector<string>& _vtrIn)
    {
        _vtrOut.clear();
    
        for (int i = 0; i < _vtrIn.size(); i++)
        {
            string str = _vtrIn.at(i);
    
            vector<string> vtr;
            SplitStr_ZZ(vtr, (char*)str.c_str(), (char*)"=");
            if (vtr.size() == 1)
                _vtrOut.push_back(vtr.at(0) + " :");
            else if (vtr.size() == 2)
            {
                _vtrOut.push_back(vtr.at(0) + " :");
                
                vector<string> vtr1;
                SplitStr_ZZ(vtr1, (char*)vtr.at(1).c_str(), (char*)";");
                for (int j = 0; j < vtr1.size(); j++)
                    _vtrOut.push_back("	" + vtr1.at(j));
            }
            else
                printf("Unhandled : %s
    ", str.c_str());
        }
    }
    
    
    int WriteLog(char* _pcFullFileName, char* _pcWrite, int _iWriteLen, unsigned long * _pdwWritten)
    {
        HANDLE hLogFile = CreateFileA(_pcFullFileName, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_ALWAYS/*CREATE_NEW*/, 0, 0);// ZC: 存在:打开;不存在:创建
        if (hLogFile == INVALID_HANDLE_VALUE)
            return GetLastError();
    
        if (INVALID_SET_FILE_POINTER == SetFilePointer(hLogFile, 0, 0, FILE_END))
        {
            int iErr = GetLastError();
            CloseHandle(hLogFile);
            return iErr;
        }
    
        BOOL B = WriteFile(hLogFile, _pcWrite, _iWriteLen, _pdwWritten, NULL);
        if (!B)
        {
            int iErr = GetLastError();
            CloseHandle(hLogFile);
            return iErr;
        }
        CloseHandle(hLogFile);
        return 0;
    }

    2、

    void SplitStr_ZZ(vector<string>& _vtr, char* _pc, char* _pcPattern)
    {
        _vtr.clear();
        if ((_pc == NULL) || (_pcPattern == NULL))
            return;
    
        char* pc = strtok(_pc, _pcPattern);
        while (pc != NULL)
        {
            _vtr.push_back(string(pc));
    
            pc = strtok(NULL, _pcPattern);
        }
    
    }

    3、

    4、

    5、

  • 相关阅读:
    译:DOM2中的高级事件处理(转)
    Cookbook of QUnit
    URI编码解码和base64
    css截断长文本显示
    内置对象,原生对象和宿主对象
    HTML中的meta(转载)
    iframe编程的一些问题
    自动补全搜索实现
    new的探究
    深入instanceof
  • 原文地址:https://www.cnblogs.com/cppskill/p/11612739.html
Copyright © 2011-2022 走看看