- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
请多多包涵,因为我还是编程新手。我需要阅读 /proc/cpuinfo
来确定路由器的型号,该文件如下所示:
system type : bcm63xx/HW553 (0x6358/0xA1)
machine : Unknown
processor : 0
cpu model : Broadcom BMIPS4350 V1.0
BogoMIPS : 299.26
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : no
isa : mips1 mips2 mips32r1
ASEs implemented :
shadow register sets : 1
kscratch registers : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available
我需要在变量中存储的是这部分bcm63xx/HW553 (0x6358/0xA1)
。这是型号,它会不断变化,这是我到目前为止尝试过的:
#include <stdio.h>
int main ( void )
{
char filename[] = "/proc/cpuinfo";
FILE *file = fopen ( filename, "r" );
if (file != NULL) {
char line [1000];
while(fgets(line,sizeof line,file)!= NULL) /* read a line from a file */ {
fprintf(stdout,"%s",line); //print the file contents on stdout.
}
fclose(file);
}
else {
perror(filename); //print the error message on stderr.
}
return 0;
}
但是那个脚本只打印文件,我不知道如何将路由器的模型存储在变量中,我应该怎么做?
附言:将路由器的模型存储在变量中后,我需要比较它是否与预定义变量匹配。
更新
我试图让它成为一个函数,我的代码是:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* model() {
char filename[] = "/proc/cpuinfo";
char* key = "system type";
char* value;
FILE *file = fopen(filename, "r");
if (file != NULL) {
char line[1000];
char* router_model = NULL;
while (fgets(line, sizeof line, file) != NULL) /* read a line from a file */ {
fprintf(stdout, "%s", line); //print the file contents on stdout.
if (strncmp(line, key, strlen(key)) == 0) {
char* value = strchr(line, ':');
value += 2;
router_model = strdup(value);
break; // once the key has been found we can stop reading
}
}
fclose(file);
if (router_model != NULL) {
printf("The model is %s\n", router_model); // print router model
}
else {
printf("No %s entry in %s\n", key, filename); // key not found, print some error message
}
free(router_model);
}
else {
perror(filename); //print the error message on stderr.
}
return router_model;
}
int main(void)
{
char* ret;
ret = model();
printf("Model: %s\n", ret);
return 0;
}
但是我得到一个错误:
test.c: In function ‘model’:
test.c:37:9: error: ‘router_model’ undeclared (first use in this function)
return router_model;
^~~~~~~~~~~~
test.c:37:9: note: each undeclared identifier is reported only once for each function it appears in
我该如何解决?
最佳答案
一旦你有了你的行,检查它是否以你要查找的键字符串开头。
char* key = "system type";
...
if (strncmp(line, key, strlen(key)) == 0) {
/* this is the line you want */
}
确定该行后,找到第一个冒号。
char* value = strchr(line, ':');
现在您有了值,尽管它会包含前导冒号和空格,因此您可以迭代过去。
value += 2;
然后你应该可以使用这个结果。请注意,我没有分配任何新空间。如果您想将此值保存在某处,则需要复制该字符串。最简单的方法是复制它。
char* router_model = strdup(value);
您必须在完成后free()
这个字符串。
关于C 程序 - 如何读取文件并将其文本存储在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42208204/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to nest OR statements in JavaScript? 有没有办法做到这一点:
在 JavaScript 中有没有办法让一个变量总是等于一个变量?喜欢var1 = var2但是当var2更新,也是var1 . 例子 var var1 = document.getElementBy
我正在努力理解这代表什么 var1 = var2 == var3 我的猜测是这等同于: if (var2 == var3): var1 = var2 最佳答案 赋值 var1 = var2
这个问题已经有答案了: What does the PHP error message "Notice: Use of undefined constant" mean? (2 个回答) 已关闭 8
我在临时表中有几条记录,我想从每条记录中获取一个值并将其添加到一个变量中,例如 color | caption -------------------------------- re
如何将字符串转为变量(字符串变量--> $variable)? 或者用逗号分隔的变量列表然后转换为实际变量。 我有 2 个文件: 列名文件 行文件 我需要根据字符串匹配行文件中的整行,并根据列名文件命
我有一个我无法解决的基本 php 问题,我也想了解为什么! $upperValueCB = 10; $passNodeMatrixSource = 'CB'; $topValue= '$uppe
这可能吗? php $variable = $variable1 || $variable2? 如果 $variable1 为空则使用 $variable2 是否存在类似的东西? 最佳答案 PHP 5
在 Perl 5.20 中,for 循环似乎能够修改模块作用域的变量,但不能修改父作用域中的词法变量。 #!/usr/bin/env perl use strict; use warnings; ou
为什么这不起作用: var variable; variable = variable.concat(variable2); $('#lunk').append(variable) 我无法弄清楚这一点
根据我的理解,在32位机器上,指针的sizeof是32位(4字节),而在64位机器上,它是8字节。无论它们指向什么数据类型,它们都有固定的大小。我的计算机在 64 位上运行,但是当我打印包含 * 的大
例如: int a = 10; a += 1.5; 这运行得很完美,但是 a = a+1.5; 此作业表示类型不匹配:无法从 double 转换为 int。所以我的问题是:+= 运算符 和= 运算符
您好,我写了这个 MySQL 存储过程,但我一直收到这个语法错误 #1064 - You have an error in your SQL syntax; check the manual that
我试图在我的场景中显示特定的奖牌,这取决于你的高分是基于关卡的目标。 // Get Medal Colour if levelHighscore goalScore { sc
我必须维护相当古老的 Visual C++ 源代码的大型代码库。我发现代码如下: bIsOk = !!m_ptr->isOpen(some Parameters) bIsOk的数据类型是bool,is
我有一个从 MySQL 数据库中提取的动态产品列表。在 list 上有一个立即联系 按钮,我正在使用一个 jquery Modal 脚本,它会弹出一个表单。 我的问题是尝试将产品信息变量传递给该弹出窗
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
jQuery Core Style Guidelines建议两种不同的方法来检查变量是否已定义。 全局变量:typeof variable === "undefined" 局部变量:variable
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: “Variable” Variables in Javascript? 我想肯定有一种方法可以在 JavaScrip
在语句中使用多重赋值有什么优点或缺点吗?在简单的例子中 var1 = var2 = true; 赋值是从右到左的(我相信 C# 中的所有赋值都是如此,而且可能是 Java,尽管我没有检查后者)。但是,
我是一名优秀的程序员,十分优秀!