windows和linux下获取当前程序路径以及cpu数
- #ifdef WIN32
- #include <Windows.h>
- #else
- #include <stdio.h>
- #include <unistd.h>
- #endif
- #include <assert.h>
- std::string getCurrentAppPath()
- {
- #ifdef WIN32
- char path[MAX_PATH + 1] = {0};
- if (GetModuleFileName(NULL, path, MAX_PATH) != 0)
- return std::string(path);
- #else
- char path[256] = {0};
- char filepath[256] = {0};
- char cmd[256] = {0};
- FILE* fp = NULL;
- // 设置进程所在proc路径
- sprintf(filepath, "/proc/%d", getpid());
- // 将当前路径设为进程路径
- if(chdir(filepath) != -1)
- {
- //指定待执行的shell 命令
- snprintf(cmd, 256, "ls -l | grep exe | awk '{print $10}'");
- if((fp = popen(cmd,"r")) == NULL)
- {
- return std::string();
- }
- //读取shell命令执行结果到字符串path中
- if (fgets(path, sizeof(path)/sizeof(path[0]), fp) == NULL)
- {
- pclose(fp);
- return std::string();
- }
- //popen开启的fd必须要pclose关闭
- pclose(fp);
- return std::string(path);
- }
- #endif
- return std::string();
- }
- std::size_t getCpuCount()
- {
- #ifdef WIN32
- SYSTEM_INFO sysInfo;
- GetSystemInfo(&sysInfo);
- return sysInfo.dwNumberOfProcessors;
- #else
- long cpu_num = sysconf(_SC_NPROCESSORS_ONLN);
- if (cpu_num == -1)
- {
- assert(false);
- return 0;
- }
- // 看两者是否相等
- assert(cpu_num == sysconf(_SC_NPROCESSORS_CONF));
- return cpu_num;
- #endif
- }
windows和linux下获取当前程序路径以及cpu数的更多相关文章
- 在Windows及Linux下获取毫秒级运行时间的方法
在Windows下获取毫秒级运行时间的方法 头文件:<Windows.h> 函数原型: /*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL W ...
- Linux下获取当前程序的绝对路径
在Linux开发应用时,我们常常需要在程序中获取当前程序绝对路径,我们可以通过readlink读取符号链接/proc/self/exe进行获取,这个符号链接代表当前程序,它的源路径就是当前程序的绝对路 ...
- 怎样在windows下和linux下获取文件(如exe文件)的具体信息和属性
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xmt1139057136/article/details/25620685 程序猿都非常懒.你懂的! ...
- windows和linux下查看java安装路径
windows下查看版本:(默认安装路径安装就不需要去配环境变量了) java -version windows下查看安装路径: java -verbose Linux下安装版本查看方式和window ...
- 【C#遗补】获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPath的区别
原文:[C#遗补]获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPa ...
- php windows与linux下的路径区别
php windows与linux下的路径区别windows用的是"\",linux用的是"/"这一点要特别清楚,, ps:在PHP windows也可以用/表 ...
- Windows与Linux下文件操作监控的实现
一.需求分析: 随着渲染业务的不断进行,数据传输渐渐成为影响业务时间最大的因素.究其原因就是因为数据传输耗费较长的时间.于是,依托于渲染业务的网盘开发逐渐成为迫切需要解决的需求.该网盘的实现和当前市场 ...
- 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH
谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...
- paip兼容windows与linux的java类根目录路径的方法
paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...
随机推荐
- 会场安排问题--nyoj题目14
会场安排问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...
- mini-httpd源码分析-mini-httpd.c
main函数分析: 一,参数设置: 读取命令行参数 配置文件参数 读取参数,设置对应的全局变量.主要参数有:配置文件:资源目录:进程ID文件:日志文件:字符集:主机名及端口号... 二,参数处理:重点 ...
- 一个简化的printf函数
<C和指针>第7章第5道编程题: 实现一个简化的printf函数,它能够处理%d.%f.%s 和 %c 格式码,根据ANSI标准的原则,其他格式码的行为是未定义的.你可以假定已经存在函数 ...
- SQL Server 找出值得优化的语句
方法 1. sys.dm_exec_qurey_stats 返回 SQL Server 中缓存查询计划的聚合性能统计信息. 缓存计划中的每个查询语句在该视图中对应一行, 并且行的生存期与计划本身相关联 ...
- SQL Server dbcc checkdb 修复
默认dbcc checkdb 只做数据库的检测数据库是否完好.不会主动做数据库的修复,要修复数据库,需要数据库设单用模式. 1.repair_allow_data_loss 可能导致数据丢失. 2. ...
- Nginx 变量漫谈(七)
在 (一) 中我们提到过,Nginx 变量的值只有一种类型,那就是字符串,但是变量也有可能压根就不存在有意义的值.没有值的变量也有两种特殊的值:一种是“不合法”(invalid),另一种是“没找到”( ...
- 在WPF中自定义你的绘制(五)
原文:在WPF中自定义你的绘制(五) 在WPF中自定义你的绘制(五) ...
- Spring-----代码中使用注入的Properties配置属性
转载自:http://blog.csdn.net/hekewangzi/article/details/49990799
- centos6.4下没有heartbeat包解决办法
1.在centos6.4 中使用yum install heartbeat,并没有发现heartbeat软件包 [root@master ~]# yum install heartbeat heart ...
- 其实你不懂wget的心-01
wget用英语定义就是the non-interactive network downloader,翻译过来就是非交互的网络下载器. 1 wget都支持什么协议的下载? wget支持HTTP.HTTP ...