我已经通过串口将调制解调器连接到我的电脑(linux),我正在尝试使用写入和读取系统调用来写入和读取调制解调器。读取读取调制解调器中的所有数据后读取系统调用块,在我的代码我已经检查了eof,如下所示
while(1)
{
if((rd_cnt =read(fd, &str, 1)) <=0)
{
perror("Read to dev failed");
printf("error no=%d\n",errno);
break;
}
printf("char =%c -> hex=%x rd_cnt=%d\n",str,str,rd_cnt);
sleep(3);
str=0;
}
if(rd_cnt==0)
printf("EOF met\n");
但我从未得到过eof,我想读取从调制解调器发送的所有数据,直到我遇到文件结尾。 请指导我。
答案 0 :(得分:2)
像这样更改您的代码
if((rd_cnt =read(fd, &str, sizeof(str))) <=0)
{
perror("Read to dev failed");
printf("error no=%d\n",errno);
break;
}
可以检查EOF
条件。
无需再次编写此代码,因为您已经在检查此内容。
//if(rd_cnt==0)
//printf("EOF met\n");