ZHCUAU3J January 2018 – March 2024
下一个级别是器件级别驱动程序。它们直接映射到低级 I/O 函数。默认器件驱动程序是主机器件驱动程序,它使用调试器来执行文件操作。主机器件驱动程序会自动用于默认的 C 流 stdin、stdout 和 stderr。
主机器件驱动程序与在主机系统上运行的调试器共享一个特殊的协议,因此主机可以执行程序所请求的 C I/O。程序要执行的 C I/O 操作指令会在 .cio 部分内名为 _CIOBUF_ 的特殊缓冲区中进行编码。调试器会在特殊断点 (C$$IO$$) 暂停程序,读取目标内存空间并进行解码,然后执行所请求的操作。结果会编码到 _CIOBUF_,程序会恢复运行,然后目标会对结果进行解码。
主机器件上实现了用于执行编码的七个函数,分别是 HOSTopen、HOSTclose、HOSTread、HOSTwrite、HOSTlseek、HOSTunlink 和 HOSTrename。每个函数均从具有相似名称的低级 I/O 函数调用。
器件驱动程序包含七个必需的函数。并非所有函数都需要对所有器件具有意义,但全部七个函数都必须进行定义。在这里,所有七个函数的名称都以 DEV 开头,但您可以选择使用 HOST 之外的任何名称。