<分区>
在 Windows 机器上写入串行端口 (COM1) 时出现写入错误。返回的错误是 112 (DISK_FULL)。因为这是一个串行端口,所以我不明白错误的含义。
难道是缓冲区满了?我不这么认为,因为我在打开端口后发送的第一个请求中收到错误。
<分区>
在 Windows 机器上写入串行端口 (COM1) 时出现写入错误。返回的错误是 112 (DISK_FULL)。因为这是一个串行端口,所以我不明白错误的含义。
难道是缓冲区满了?我不这么认为,因为我在打开端口后发送的第一个请求中收到错误。
最佳答案
像这样的 I/O 错误是由设备驱动程序生成的。现在很少有微软提供的标准 Windows 串行端口驱动程序,它只适用于真正的串行端口硬件。串行端口通常由使用自定义硬件实现通信的设备驱动程序模拟。例如蓝牙和 USB。但一切顺利。
这对设备制造商来说很方便,因为他们不必提供允许您在自己的代码中使用该设备的自定义 DLL。模拟串行端口让您可以简单地使用标准的 winapi 函数与设备对话。
但就目前而言,一个核心问题是您实际上并没有使用串口硬件。另一个是这些设备制造商不太擅长编写自定义驱动程序。特别是 USB 驱动程序因其质量差而臭名昭著。根本没有帮助的是串行端口不是即插即用的,它们太原始而无法支持设备发现。发现连接到设备的端口号和处理正在使用的设备断开连接等简单的事情是严重的障碍。
当然,“磁盘已满”错误代码没有任何意义。设备驱动程序编写者获取了特定于设备的某种错误情况的错误代码。找出错误真正含义的唯一方法是询问供应商。
关于c++ - 在串行端口上写入时出现错误 112(磁盘已满)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12953075/