最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
linux c++ 两个实用函数实例分享
时间:2022-06-25 04:47:20 编辑:袖梨 来源:一聚教程网
linux c++ 获取基本类型的极值
源代码
#include#include #include using namespace std; int main() { cout ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)() ::max)(); cout ::min)()
Linux中用C++通过管道来获取命令行输出的内容
使用C++时,有些时候我们可以通过管道的方法来获取所执行的命令所输出的内容。具体做法如下:
首先你需要确定你所执行的命令所输出的内容的格式(不同的操作系统相同的命令所输出来的内容格式可能会不一致)。我们来举例说明:我想获取/var目录当前所暂用的存储空间,以KB为单位输出:
[root@localhost /]# du -sk /var
13532132 var
[root@localhost /]# du -sk /var | awk -F ' ' '{print $1}'
13532132
从上面输出可以知道/var目录当前暂用了13532132KB,那么我们如何将改值使用到我们的程序中呢?为了简单起见我实现了如下函数:int64_t CalculateDirUsedCapacity (const std::string& directoryName) { FILE *fstream = NULL; char buff[32]; memset (buff ,' ', sizeof(buff)); std::string cmd = "du -sk " + directoryName; cmd += "| awk -F ' ' '{print $1}'"; // 通过管道来回去系统命令返回的值 if(NULL == (fstream = popen (cmd.c_str (), "r"))) { return 0; } if(NULL == fgets (buff, sizeof(buff), fstream)) { pclose(fstream); return 0; } std::strstream ss; ss > usedCapacity; pclose(fstream); // close pipe return usedCapacity; }
相关文章
- 蔚蓝档案明里新年怎么样 09-16
- 鹅鸭杀冒险家有什么玩法技巧 09-16
- 探险异星飞行队景点如何玩 09-16
- 逆战未来飓风之锤怎么样 09-16
- 原神月之寻宝罗盘怎么用-月之寻宝罗盘使用方法 09-16
- 物华弥新狸猫盘有什么使用技巧 09-16