モデムをシリアル ポート経由で PC (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 を取得したことはありません。ファイルの終わりに到達するまで、モデムから送信されたすべてのデータを読みたかったのです。私を案内してください。