-1
我需要知道系統調用是否讀取了整個數據。如果緩衝區中沒有數據,則默認爲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");
你想讀取文件或流? – Theolodis
@mbratch:嗨,請查看附件中的代碼。 – Sachin
@mbratch ... http://stackoverflow.com/questions/18399812/read-system-call-not-detecting-end-of-file/18400047?noredirect=1#comment27026567_18400047 – someone