我已经通过串行端口将调制解调器连接到我的pc(linux),我正在尝试使用写和读系统调用对调制解调器进行写和读。在从调制解调器读取所有数据后读取读取系统调用块的过程中,在我的代码中,我检查了如下所示的eof
while(1)
{
if((rd_cnt =read(fd, &str, 1)) <=0)
{
perror("Read to dev failed");
printf("error no=%dn",errno);
break;
}
printf("char =%c -> hex=%x rd_cnt=%dn",str,str,rd_cnt);
sleep(3);
str=0;
}
if(rd_cnt==0)
printf("EOF metn");
但我从来没有得到eof,我想读取从调制解调器发送的所有数据,直到我遇到文件的末尾。请引导我。
像这样更改代码
if((rd_cnt =read(fd, &str, sizeof(str))) <=0)
{
perror("Read to dev failed");
printf("error no=%dn",errno);
break;
}
检查EOF
条件即可。
无需再次编写此代码,因为您已经在检查此代码了。
//if(rd_cnt==0)
//printf("EOF metn");