readcond怎么会读到0个字符呢

//打开串口并初始化

while(1)
{
if((ReceivedSize=readcond(fd1,TempReceivedData,ReceiveSize,512,1,2))<0)
{
perror( “Unable to read data from fd1” );
continue;
}

printf(“ReceivedSize=%d\n”,ReceivedSize);
}

在执行的时候,会发现打印的数据是
ReceivedSize=200
ReceivedSize=0
ReceivedSize=200
ReceivedSize=0。。。。
一直是一个正确的,然后是一个0
我readcond里面设置的最少是1啊,怎么会读到0呢?这个0是怎么得到的啊?

最少是1? 你再看看readcond()的说明,你的512,1,2对应的是MIN, TIME, TIMEOUT啊。

问题已经解决
是因为到时间了,还没有收到数据,就会返回0