关于文件号(File handle)
文件号是一个十六位的二进制整数,代表一个已被打开文件的标识码。应用程序借助这个标识码,即可对相应的文件进行存取操作。
旅者住招待所要填写姓名、工作单位等,(DOS用ASCⅡ码表示的文件路径名),当得到管理员许可(文件被成功打开)后,发给旅者一个标有房间号码的出入证(房间号码相当于DOS返回的文件号),旅者凭出入证进出房间而不必通报姓名(应用程序凭文件号存取文件)
MS-DOS中仅有20个文件号,前5个已分配给I/O设备:
0—键盘 1—显示器 2—显示器 3—RS-232的设备 4—打印机
在DOS控制下,应用程序同时打开的文件数最大为15个
一、文件重新命名(INT 21H)
入口参数:ah 功能号 56H
ds:dx 原文件名及路径串地址
es:di 新文件名及路径串地址
输出参数:CF=1, 改名失败,ax中为错误信息
ax=02H,ds:dx指定的文件不存在
ax=03H,ds:dx指定的路径错
ax=05H,es:di指定的文件已存在
ax=11H, 原文件与新文件指定的驱动器不同
二、删除指定的文件(INT 21H)
输入参数:ah: 功能号 41H
ds:dx 文件路径及文件名
输出参数:CF=0 删除成功
CF=1 失败,ax=错误代码
ax=02H ;找不到指定文件
ax=05H ;指定的是目录或只读文件
三、改变文件属性(INT 21H)
输入参数: ah 功能号 43H
ds:dx 文件名首址
al=1 置文件属性
cx 文件属性
输出参数:CF=0 成功
CF=1 失败,ax=错误代码
=03 路径名无效
=01 al值无效
四、文件的建立、打开、读、写、关闭
1、建立文件
mov ah,3ch
lea dx,文件名串首址
mov cx,属性
int 21h
2、打开文件
mov ah,3dh
lea dx,文件名首址
mov al,属性
int 21h
3、读文件
mov ah,3fh
mov bx,文件号
lea dx,文件名首址
mov cx,要读字节数
int 21h
4、写文件
mov ah,40H
mov bx,文件号
mov cx,写字节数
lea dx,数据缓冲区首址
int 21H
5、关闭文件
mov ah,3eH
mov bx,文件号
int 21H