基本上我有一个连接到raspberry pi的com端口,我试图将收到的数据附加到.txt文件中。到目前为止,我只是成功打开了文件..我应该如何编辑现有代码,以便能够“保存”#34;数据进入打开的文件?
我也尝试过编辑:
$1
但似乎这会阻止数据被接收。
现在的代码如下:
FILE *f;
f = fopen("try.txt", "a");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
int r;
char buf[255];
while( 1 )
{
r = read( fd, buf, 255 );
buf[r]=0;
fprintf( f, "%s", buf);
}
fclose(f);
新的raspbian等..任何帮助将不胜感激。
答案 0 :(得分:0)
第一个问题是您正在尝试打印字符串,并且您的缓冲区格式不正确:字符串以' \ 0'结尾,而printf将查找该字符串。
您可以阅读254个字符并手动添加' \ 0'作为最后一个字符或使用其他一些机制(例如cout)。
但即使这样也比较混乱。有一个更难实现,但更优雅的解决方案:
当数据可用时,请按以下方式阅读:
nr_bytes = read(fd,buf,255);
是的,它只是在你读取可用数据而不是等待所有255个字节时返回的相同读数。所以你刚刚阅读了nr_bytes
字节,你可以写入你的文件。
REPEAT ...
希望这有帮助!