指令/usr/bin/sn_core.elf getphy 打印的内容是 Offset: 12130 12130 Voltage: 31872 用c调用该指令 并用strstr将其打印出来的内容存储到一个数组中
时间: 2024-03-27 18:40:56 浏览: 56
可以使用C语言中的popen函数来调用指令并将其输出的内容读入到一个数组中。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BUF_SIZE 1024
int main() {
FILE *fp;
char buf[MAX_BUF_SIZE];
char result[MAX_BUF_SIZE];
int i = 0;
fp = popen("/usr/bin/sn_core.elf getphy", "r");
if (fp == NULL) {
printf("Error: failed to execute command.\n");
exit(1);
}
while (fgets(buf, MAX_BUF_SIZE, fp) != NULL) {
// 使用strstr函数查找包含偏移量和电压值的行
if (strstr(buf, "Offset:") != NULL && strstr(buf, "Voltage:") != NULL) {
sprintf(result + i, "%s", buf);
i += strlen(buf);
}
}
printf("Result: %s\n", result);
pclose(fp);
return 0;
}
```
在上面的例子中,我们使用popen函数来执行指令"/usr/bin/sn_core.elf getphy",并将其输出读入到数组result中。我们使用fgets函数逐行读取指令输出的内容,然后使用strstr函数来查找包含偏移量和电压值的行,并将其存储到数组result中。最后,我们使用printf函数输出整个数组result。注意,我们需要使用pclose函数关闭文件指针fp。
阅读全文