标准MS-DOS文件I/O服务详解
在MS-DOS编程中,INT 21h提供了丰富的文件和目录I/O服务。下面将详细介绍这些服务以及相关的操作。
1. 文件/设备句柄
MS-DOS和MS-Windows使用16位整数(句柄)来标识文件和I/O设备。有五个预定义的设备句柄,除了句柄2(错误输出)外,其他句柄都支持在命令提示符下进行重定向。这些句柄如下:
| 句柄 | 描述 |
| ---- | ---- |
| 0 | 键盘(标准输入) |
| 1 | 控制台(标准输出) |
| 2 | 错误输出 |
| 3 | 辅助设备(异步) |
| 4 | 打印机 |
每个I/O函数有一个共同特点:如果操作失败,进位标志(Carry flag)会被设置,并且错误代码会返回到AX中。可以使用这些错误代码来显示相应的错误信息。以下是一些常见的MS-DOS扩展错误代码:
| 错误代码 | 描述 |
| ---- | ---- |
| 01 | 无效的函数编号 |
| 02 | 文件未找到 |
| 03 | 路径未找到 |
| 04 | 打开的文件过多(没有可用句柄) |
| 05 | 访问被拒绝 |
| 06 | 无效的句柄 |
| 07 | 内存控制块被破坏 |
| 08 | 内存不足 |
| 09 | 无效的内存块地址 |
| 0A | 无效的环境 |
| 0B | 无效的格式 |
| 0C | 无效的访问代码 |
| 0D | 无效的数据 |
| 0E | 保留 |
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



