用c 写一个每隔1秒调用/usr/bin/sn_core.elf getstat 2>/dev/null指令 然后将该指令输出的值存入数组 该数组内还包含7个数组 字数组最大拥有50个值 当第51个值输入时 将第一个值舍弃 以此类推
时间: 2023-12-02 15:03:10 浏览: 76
好的,以下是使用C语言实现每隔1秒调用 `/usr/bin/sn_core.elf getstat 2>/dev/null` 并将输出存入数组中,并实现循环存储的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define MAX_ARR_SIZE 7 // 数组个数
#define MAX_STR_LEN 50 // 字符串最大长度
int main() {
char arr[MAX_ARR_SIZE][MAX_STR_LEN]; // 存储数组
int index = 0; // 当前存储位置
while(1) {
// 调用指令并获取输出
FILE *fp = popen("/usr/bin/sn_core.elf getstat 2>/dev/null", "r");
char buf[MAX_STR_LEN];
fgets(buf, sizeof(buf), fp);
pclose(fp);
// 处理输出,存入数组中
buf[strlen(buf)-1] = '\0'; // 去掉换行符
strcpy(arr[index], buf);
index = (index + 1) % MAX_ARR_SIZE; // 循环存储
// 输出数组中的内容
printf("Array:\n");
for(int i = 0; i < MAX_ARR_SIZE; i++) {
printf("%s\n", arr[i]);
}
printf("\n");
// 等待1秒
sleep(1);
}
return 0;
}
```
代码中使用了 `popen()` 函数来调用指令并获取输出,使用了循环存储的方式来实现存储多个值,并且在每次存储值后输出整个数组的内容。
阅读全文