我编写了以下函数,它从外部设备读取缓冲区(我已经用另一个函数打开了串行端口)。我有这个 for 循环,因为我想要不间断的结果:
int get_data(int fd)
{
int n;
for (;;)
{
char buff[1000];
n=read(fd,buff,1000);
printf("%s\n\n", buff);
sleep(1);
memset(buff, 0, 1000);
}
}
缓冲区每 10 秒返回一次不同的结果,如下所示:
machine 1:vol=3.44V, str=10.2
machine 2:vol=3.23V, str=10.00
10 秒后
machine 1:vol=3.24V, str=11.2
machine 1:vol=3.27V, str=11.4
等等
我现在的问题是,如何将所有 vol 值保存在一个数组中,并将 str 值保存在第二个数组中?下一步是将数组中的这些数据保存在 mysql 数据库中。我想使用 strncpy 将字符串复制到新数组中,但我认为这不是一个好主意。例如:
char vol[10];
strncpy(vol, buff + 15, 4);
printf("%s\n", vol);
你有什么建议我?