从流中读取和写入的某些操作可能会在流中设置错误标志,可以使用ferror(stream)
进行测试,虽然我很确定这一定是一个常见问题,我无法在 SO 或一般网络中找到所有可能的错误原因的列表。什么可能导致ferror()被设置?
特别是,我正在寻找在 Minix 3 上的标准输入上执行 fgets() 时可能出现错误的原因,但我也在寻找更通用的列表。
最佳答案
没有任何简单的可能错误列表。但是,根据您读取或写入的设备,问题可能包括:
- 设备故障(短路、过热、老化......)
- 设备已从机器中拔出(U 盘)
- 设备已关闭或断电(外部磁盘驱动器)
- 设备已弹出(CD-ROM)
- 网络连接丢失(SAN、NAS)
- 设备已满(没有剩余空间可供写入)
- ...
关于c - 流上有哪些可能的错误条件会导致ferror()被设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125127/