【发布时间】:2014-11-20 18:19:13
【问题描述】:
这里是C++程序员,需要快速解决以下问题。
我需要执行以下减法运算,从文件中获取输入并将所需的数字存储在变量中。但是 printf() 显示 0 作为值。
#include<stdio.h>
main()
{ system("clear");
system("cat /proc/meminfo | grep MemTotal");
system("cat /proc/meminfo | grep MemFree ");
int a=system("cat /proc/meminfo | grep MemTotal | grep -Eo [0-9]+");
int b=system("cat /proc/meminfo | grep MemFree | grep -Eo [0-9]+");
int c=a-b;
printf("%d \n",c);
}
输出如下:
MemTotal: 3913212 kB
MemFree: 1769672 kB
3913212
1769388
0
此外,还有一种方法可以抑制代码中第 7 行和第 8 行的输出,因为我只需要将它们存储在变量中。
编辑:固定长整数。
谢谢
【问题讨论】:
-
1)
system的返回值类型为int。 2) grep 的返回值不是显示值。 -
@BLUEPIXY 啊,是的,1 已修复,如何进行第 2 次?我应该如何将 grep(显示值)存储在 var 中?
-
通过管道从文件流接收(使用
popen)。 -
只是想建议也许使用sysinfo 来获取此信息...
标签: c linux operating-system