0

我已经通过串行端口将调制解调器连接到我的电脑(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,我想读取从调制解调器发送的所有数据,直到我遇到文件结尾。请指导我。

4

1 回答 1

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");
于 2013-08-23T10:02:26.350 回答