使用 fd=open("/dev/ttyS4", O_RDWR|O_NOCTTY|O_NDELAY); 打开串口。
又调用了 fcntl(fd, F_SETFL, 0 );
结果read还没阻塞,怎么回事?
原来还VTIME和VMIN要设置。
VTIME定义要求等待的零到几百毫秒的值(通常是一个8位的unsigned char变量)。
VMIN定义了要求等待的最小字节数, 这个字节数可能是0。
比如:
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 0;
这样设置的话,实际read还不是阻塞方式。
又调用了 fcntl(fd, F_SETFL, 0 );
结果read还没阻塞,怎么回事?
原来还VTIME和VMIN要设置。
VTIME定义要求等待的零到几百毫秒的值(通常是一个8位的unsigned char变量)。
VMIN定义了要求等待的最小字节数, 这个字节数可能是0。
比如:
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 0;
这样设置的话,实际read还不是阻塞方式。