char temp[50], voltage[50], offset[50], wr1_linkt[50], wr1_loop[50], wr1_onew[50], wr0_linkt[50], wr0_loop[50], wr0_onew[50], time[50]; char buffer[1024]; int counter = 0; FILE *fp = popen("/usr/bin/sn_core.elf getstat 2>/dev/null","r"); if(fp == NULL){ printf("Failed to run\n"); exit(1); } if(fgets(buffer,sizeof(buffer),fp) == NULL){ printf("Failed to gets!\n"); exit(1); } char *p = strstr(buffer,"mu:"); if(p != NULL){ sscanf(p,"%*[^0123456789]%[^ ]",wr1_loop); printf("mu:%s\n",wr1_loop); }else{ printf("Failed to find mu:\n"); exit(1); } p = strstr(buffer,"dms:"); if(p != NULL){ sscanf(p,"%*[^0123456789]%[^ ]",wr1_onew); printf("dms:%s\n",wr1_onew); }else{ printf("Failed to find dms:\n"); exit(1); } p = strstr(buffer,"crtt:"); if(p != NULL){ sscanf(p,"%*[^0123456789]%[^ ]",wr1_linkt); printf("%c\n",wr1_linkt[0]); }else{ printf("Failed to find crtt:\n"); exit(1); } p = strstr(buffer,"temp:"); if(p != NULL){ sscanf(p,"%*[^0123456789]%[^ ]",temp); printf("%c\n",temp[0]); }else{ printf("Failed to find temp:\n"); exit(1); } p = strstr(buffer,"Time:"); if(p != NULL){ sscanf(p,"%*[^0-9+-]%[^.]",time); printf("%c\n",time[0]); }else{ printf("Failed to find Time:\n"); exit(1); } pclose(fp); return 0; } 运行该代码 打印Failed to find mu:
时间: 2024-04-26 17:24:49 浏览: 10
根据你提供的代码,我分析了一下,Failed to find mu 是因为在 buffer 字符串中没有找到 "mu:" 这个子串。同理,其他的 "dms:", "crtt:", "temp:", "Time:" 也都没有被找到。这可能是因为 sn_core.elf getstat 命令返回的结果与代码中的字符串不匹配导致的。你可以尝试手动运行这个命令并观察其输出,看看是否与代码中的字符串一致。
相关问题
char temp[50]; char voltage[50]; char offset[50]; char wr1_linkt[50]; char wr1_loop[50]; char wr1_onew[50]; char wr0_linkt[50]; char wr0_loop[50]; char wr0_onew[50]; char time[50]; char data = {temp,voltage,offset,wr1_linkt,wr1_loop,wr1_onew,wr0_linkt,wr0_loop,wr0_onew};
这段代码有语法错误。变量 data 的类型是 char,但是在初始化时使用了花括号并列出了多个字符串变量,这是不允许的。应该使用一个结构体或者数组来存储这些字符串变量。我来给您举个例子:
```
struct Data {
char temp[50];
char voltage[50];
char offset[50];
char wr1_linkt[50];
char wr1_loop[50];
char wr1_onew[50];
char wr0_linkt[50];
char wr0_loop[50];
char wr0_onew[50];
char time[50];
};
struct Data data = {
"temp value",
"voltage value",
"offset value",
"wr1_linkt value",
"wr1_loop value",
"wr1_onew value",
"wr0_linkt value",
"wr0_loop value",
"wr0_onew value",
"time value"
};
```
这里定义了一个名为 Data 的结构体,包含了10个 char 类型的数组成员。然后使用结构体初始化语法,将每个成员的值分别初始化,并赋值给一个名为 data 的 Data 类型变量。这样就可以存储这些字符串变量了。
char temp[50]; char voltage[50]; char offset[50]; char wr1_linkt[50]; char wr1_loop[50]; char wr1_onew[50]; char wr0_linkt[50]; char wr0_loop[50]; char wr0_onew[50]; char time[50]; int data[10] = {temp,voltage,offset,wr1_linkt,wr1_loop,wr1_onew,wr0_linkt,wr0_loop,wr0_onew,temp};
这段代码仍然有语法错误。变量 data 是一个 int 类型的数组,但是在初始化时使用了花括号并列出了多个字符串变量的地址,这是不允许的。您可以使用一个指向 char 类型数组的指针数组来存储这些字符串变量的地址。我来给您举个例子:
```
char temp[50];
char voltage[50];
char offset[50];
char wr1_linkt[50];
char wr1_loop[50];
char wr1_onew[50];
char wr0_linkt[50];
char wr0_loop[50];
char wr0_onew[50];
char time[50];
char* data[10] = {temp, voltage, offset, wr1_linkt, wr1_loop, wr1_onew, wr0_linkt, wr0_loop, wr0_onew, time};
```
这里定义了一个名为 data 的指针数组,共有10个元素,每个元素都是一个指向 char 类型数组的指针。然后使用数组初始化语法,将每个字符串变量的地址分别初始化,并存储到数组中的对应位置。这样就可以存储这些字符串变量的地址了。需要注意的是,这里的数组初始化语法只适用于指针数组,而不适用于普通数组。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)