请教关于 DOS 7 下用 Int 26H 的问题

icefire 2000-03-02 02:00:00
加精
本人最近要写一个for dos(windows98)的程序,于
是想到用Borland C++ 3.1,但调用dos中断 26H(绝对
写磁盘扇区)时,返回寄存器值 CF=1(出错) AL=7(未
知的磁盘格式) AH=2(无效扇区标识),本人认为可能是
int 26H 对于 Fat32 不支持的原因,请教高手指点怎
样才能解决这个问题。

另:dos(windows 9x)下缺省状态是锁住 C 盘,非要用
LOCK 命令才能解锁,不知有没有不用键盘录入就解锁
的办法?
...全文
283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
icefire 2000-03-25
  • 打赏
  • 举报
回复
谢谢大家了,问题的原因我也清楚了接下来就是我自己的事了,请大家能够接受我给的分,呵呵 :)
sunsetyang 2000-03-20
  • 打赏
  • 举报
回复
你查一下关于Lock方面的资料,看看是不是有哪个调用能够完成.磁盘的绝对写挺危险的,很容易捣毁系统上原有的数据.要试的话最好做好备份.现在的调用一般都是由DOSint21h接管的,你可以用他所提供的稍微高级一些的终端调用来完成一些事情.但要绝对读写的话,还是要int 13h.绝对读写应该是能够绕过文件系统这一层的,所以不应该是不认FAT32的问题.
对于那个lock,系统只要运行一次后即可了,用不了那么麻烦的吧!
Lin 2000-03-16
  • 打赏
  • 举报
回复
我没有Win9x,所以没法子试,抱歉。
试试System('Lock <Lock.txt');
Lock.Txt文件只有一个Y和回车字符。
icefire 2000-03-16
  • 打赏
  • 举报
回复
Thank,第一个问题我明白了但第二个是不行的,用
system("lock...") 不行我早试过了的,原因是 lock 没 /y 的参数而且
它执行时清键盘缓冲,所以没法在程序中解决这个问题... :(

不过,还是非常感谢
Lin 2000-03-13
  • 打赏
  • 举报
回复
1、Int 25H、Int 26H早就不被支持,建议改成Int 13H。
2、那就System('Lock ...');如何?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧