1. #ifdef WIN32
  2. #include <Windows.h>
  3. #else
  4. #include <stdio.h>
  5. #include <unistd.h>
  6. #endif
  7. #include <assert.h>
  8. std::string getCurrentAppPath()
  9. {
  10. #ifdef WIN32
  11. char path[MAX_PATH + 1] = {0};
  12. if (GetModuleFileName(NULL, path, MAX_PATH) != 0)
  13. return std::string(path);
  14. #else
  15. char path[256] = {0};
  16. char filepath[256] = {0};
  17. char cmd[256] = {0};
  18. FILE* fp = NULL;
  19. // 设置进程所在proc路径
  20. sprintf(filepath, "/proc/%d", getpid());
  21. // 将当前路径设为进程路径
  22. if(chdir(filepath) != -1)
  23. {
  24. //指定待执行的shell 命令
  25. snprintf(cmd, 256, "ls -l | grep exe | awk '{print $10}'");
  26. if((fp = popen(cmd,"r")) == NULL)
  27. {
  28. return std::string();
  29. }
  30. //读取shell命令执行结果到字符串path中
  31. if (fgets(path, sizeof(path)/sizeof(path[0]), fp) == NULL)
  32. {
  33. pclose(fp);
  34. return std::string();
  35. }
  36. //popen开启的fd必须要pclose关闭
  37. pclose(fp);
  38. return std::string(path);
  39. }
  40. #endif
  41. return std::string();
  42. }
  43. std::size_t getCpuCount()
  44. {
  45. #ifdef WIN32
  46. SYSTEM_INFO sysInfo;
  47. GetSystemInfo(&sysInfo);
  48. return sysInfo.dwNumberOfProcessors;
  49. #else
  50. long cpu_num = sysconf(_SC_NPROCESSORS_ONLN);
  51. if (cpu_num == -1)
  52. {
  53. assert(false);
  54. return 0;
  55. }
  56. // 看两者是否相等
  57. assert(cpu_num == sysconf(_SC_NPROCESSORS_CONF));
  58. return cpu_num;
  59. #endif
  60. }

windows和linux下获取当前程序路径以及cpu数的更多相关文章

  1. 在Windows及Linux下获取毫秒级运行时间的方法

    在Windows下获取毫秒级运行时间的方法 头文件:<Windows.h> 函数原型: /*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL W ...

  2. Linux下获取当前程序的绝对路径

    在Linux开发应用时,我们常常需要在程序中获取当前程序绝对路径,我们可以通过readlink读取符号链接/proc/self/exe进行获取,这个符号链接代表当前程序,它的源路径就是当前程序的绝对路 ...

  3. 怎样在windows下和linux下获取文件(如exe文件)的具体信息和属性

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xmt1139057136/article/details/25620685 程序猿都非常懒.你懂的! ...

  4. windows和linux下查看java安装路径

    windows下查看版本:(默认安装路径安装就不需要去配环境变量了) java -version windows下查看安装路径: java -verbose Linux下安装版本查看方式和window ...

  5. 【C#遗补】获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPath的区别

    原文:[C#遗补]获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPa ...

  6. php windows与linux下的路径区别

    php windows与linux下的路径区别windows用的是"\",linux用的是"/"这一点要特别清楚,, ps:在PHP windows也可以用/表 ...

  7. Windows与Linux下文件操作监控的实现

    一.需求分析: 随着渲染业务的不断进行,数据传输渐渐成为影响业务时间最大的因素.究其原因就是因为数据传输耗费较长的时间.于是,依托于渲染业务的网盘开发逐渐成为迫切需要解决的需求.该网盘的实现和当前市场 ...

  8. 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH

    谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH  PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...

  9. paip兼容windows与linux的java类根目录路径的方法

    paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...

随机推荐

  1. Struts2 请求处理步骤

    1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求   2 )这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器 ...

  2. Gartner Publishes 2014 Magic Quadrant for SIEM and Critical Capabilities for SIEM Reports

    http://securityintelligence.com/gartner-2014-magic-quadrant-siem-security/#.SzNnhshk https://www.net ...

  3. _declspec(dllexport)与_declspec(dllimport)

    __declspec(dllexport)2009-03-04 17:25 我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文 ...

  4. linux中的strings命令简介

    摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 在linux下搞软件开发的朋友, 几乎没有不知道 ...

  5. 【数学水题】【TOJ4113】【 Determine X】

    题目大意: yuebai has a long sequence of integers A1,A2,-,AN. He also has such a function: F(x)=∑i=1N(⌊Ai ...

  6. 【位运算DFS/DLX】【HDU1426】【数独】

    题意:标准的一道数独题 DFS做法: 将横纵九宫格里的数字用位运算状态压缩,且可以通过逻辑或来确定总共有哪些数字被选择了,很方便也很快,代码如下 #include <cstdio> #in ...

  7. idea git 注意事项

    1.使用idea进行不同分支切换的时候,一定要先将代码当前分支的代码提交(可以不push),否则当前分支未提交的代码被认为即将切换的代码,在切换过程中会产生冲突. 2.使用idea进行merge的时候 ...

  8. 解决aapt命令在Linux下无法运行的问题

    新的一个项目,需要在Linux下执行aapt命令对apk文件进行处理 开发环境: MacBook-Pro:appSecuity zhang$ uname -a Darwin huijundeMacBo ...

  9. JDK8环境变量配置相关问题

    1.右键选择 计算机→属性→高级系统设置→高级→环境变量 2.系统变量→新建 变量名:JAVA_HOME 变量值:(变量值填写你的jdk的安装目录,例如本人是 E:Javajdk1.7.0) 3.在系 ...

  10. css3实现图片遮罩效果鼠标hover以后出现文字

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...