我需要知道read
系统调用是否已读取整个数据。默认情况下read
,如果缓冲区中没有数据,系统调用会阻塞,但不能确保数据已被完全读取。请让我知道一个正确的方法来确认。
在手册页中,有人说read
系统调用0
在遇到文件结尾时返回,我也尝试过,read
但根本没有返回0
。
wr_cnt =write(fd, "AT+CGMI\r", sizeof("AT+CGMI\r"));
if(wr_cnt<0)
perror("Write to dev failed");
else
printf("No.of bytes written=%d\n",wr_cnt);
while(1)
{
//rd_cnt =read(fd, &str, 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");