问题描述
我有一个打开/ dev / ttyUSB *端口的C应用程序
fd = open(portName.c_str(),O_RDWR | O_NOCTTY | O_NONBLOCK);
options.c_cflag |= (CLOCAL | CREAD);
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_iflag &= (tcflag_t) ~(INLCR | IGNCR | ICRNL | IGNBRK);
options.c_oflag &= (tcflag_t) ~(OPOST);
options.c_cflag |= CS8;
options.c_cflag |= CRTSCTS;
options.c_lflag &= ~(ICANON | ECHO | ISIG);
tcsetattr(fd,TCSANow,&options);
struct serial_struct kernel_serial_settings;
if (ioctl(fd,TIocgSERIAL,&kernel_serial_settings) == 0) {
kernel_serial_settings.flags |= ASYNC_LOW_LATENCY;
kernel_serial_settings..
ioctl(fd,TIOCSSERIAL,&kernel_serial_settings);
}
端口打开,我接收数据。但是,如果稍后断开USB设备的连接,我会调用读取功能:
nRead = _read(fd,buffer,length);
nRead将返回0。我希望它应该返回负数以指示错误(该设备不再可用)。
如何检测打开的设备已断开连接?