串口读写问题

read函数好像阻塞了,不能返回
fd_com1 = open("/dev/ser1",O_RDWR|O_NONBLOCK);
nReadBytes = read(fd_com1,buf,sizeof(buf));//没有数据的时候,这里好像不能返回

我用readcond(fd_com1,buf,sizeof(buf),5,0,50);//好像5秒后也返回不了

这时候程序都slay不掉

fd_com1 = open("/dev/ser1",O_RDWR|O_NONBLOCK)下进行read程序是不阻塞的,但是占用资源会很多,需要进行sleep延时释放系统资源,nReadBytes = read(fd_com1,buf,sizeof(buf));sleep 1;
关于readcond 只能工作于fd_com1 = open("/dev/ser1",O_RDWR) 阻塞模式下。