<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    windows和linux下獲取當前程序路徑以及cpu數

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接 [cpp] view plaincopy  
    1. #ifdef WIN32  
    2. #include <Windows.h>  
    3. #else  
    4. #include <stdio.h>  
    5. #include <unistd.h>  
    6. #endif  
    7.   
    8. #include <assert.h>  
    9.   
    10.     std::string getCurrentAppPath()  
    11.     {  
    12. #ifdef WIN32  
    13.         char path[MAX_PATH + 1] = {0};  
    14.         if (GetModuleFileName(NULL, path, MAX_PATH) != 0)  
    15.             return std::string(path);  
    16. #else  
    17.         char path[256] = {0};  
    18.         char filepath[256] = {0};  
    19.         char cmd[256] = {0};  
    20.         FILE* fp = NULL;  
    21.   
    22.         // 設置進程所在proc路徑  
    23.         sprintf(filepath, "/proc/%d", getpid());  
    24.         // 將當前路徑設為進程路徑  
    25.         if(chdir(filepath) != -1)  
    26.         {  
    27.             //指定待執行的shell 命令  
    28.             snprintf(cmd, 256, "ls -l | grep exe | awk '{print $10}'");  
    29.             if((fp = popen(cmd,"r")) == NULL)  
    30.             {  
    31.                 return std::string();  
    32.             }  
    33.             //讀取shell命令執行結果到字符串path中  
    34.             if (fgets(path, sizeof(path)/sizeof(path[0]), fp) == NULL)  
    35.             {  
    36.                 pclose(fp);  
    37.                 return std::string();  
    38.             }  
    39.   
    40.             //popen開啟的fd必須要pclose關閉  
    41.             pclose(fp);  
    42.             return std::string(path);  
    43.         }  
    44. #endif  
    45.         return std::string();  
    46.     }  
    47.   
    48.     std::size_t getCpuCount()  
    49.     {  
    50. #ifdef WIN32  
    51.         SYSTEM_INFO sysInfo;  
    52.         GetSystemInfo(&sysInfo);  
    53.         return sysInfo.dwNumberOfProcessors;  
    54. #else  
    55.         long cpu_num = sysconf(_SC_NPROCESSORS_ONLN);  
    56.         if (cpu_num == -1)  
    57.         {  
    58.             assert(false);  
    59.             return 0;  
    60.         }  
    61.         // 看兩者是否相等  
    62.         assert(cpu_num == sysconf(_SC_NPROCESSORS_CONF));  
    63.         return cpu_num;  
    64. #endif  
    65.     }  
    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全