![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 22:00 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » [求助]DOS下一次读写文件怎样超过64KB限制? |
| 可打印版本 1,474 / 7 |
| 第1楼 GOTOmsdos | 发表于 2007-02-21 11:54 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
[求助]DOS下一次读写文件怎样超过64KB限制? 想了解一下在写DOS下一次读写文件超过64KB限制的程序(这个是不是跟文件无关而是跟DOS系统和使用扩展内存有关?)
一般用fread(),fwrite(), 但是一次读写文件好象不能超过64KB! 这使得读写非常多或大的文件较慢. 那么,请教一下: 有什么好办法? (我是为了给我的TODISK提速的,类似GHOST的系统备份工具,是要超大内存才能提速的那种...) 有什么好推荐呢? [ Last edited by GOTOmsdos on 2007-2-21 at 01:15 PM ] |
|
| 第2楼 zqlcch | 发表于 2007-02-22 08:49 |
| 初级用户 发帖 85 积分 178 | |
|
用DJGPP可以实现一次读写超过64k的内容,因为DJGPP for dos编译出来的是32位的应用程序,我刚才也试过了,完整读写了c:\bootfont.bin文件。
不知楼主是否了解DJGPP,去下一个吧。 楼主应该是用BIOS中断读写扇区,好像DJGPP中调用BIOS中断要切换回实模式,不知是否会影响速度。 不妨试试。。。。 |
|
| 第3楼 GOTOmsdos | 发表于 2007-02-22 13:47 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
请教一下:
我在BC31下写的代码是不是大部分不能在DJGPP中用了? |
|
| 第4楼 GOTOmsdos | 发表于 2007-02-22 13:50 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
另, BC怎么不支持内联汇编呢?
编译说 eax cr0 等等 没有定义 ! 怎么解决呢? |
|
| 第5楼 zqlcch | 发表于 2007-02-23 04:44 |
| 初级用户 发帖 85 积分 178 | |
|
bc好像只支持实模式的汇编,EAX之类的要加一个指令前缀,具体是什么忘了。
很久没有摸这些东西了,十分惭愧,不知道本是大师懂吗 大部分代码都可以在DJGPP下面使用。 |
|
| 第6楼 zqlcch | 发表于 2007-02-23 05:23 |
| 初级用户 发帖 85 积分 178 | |
|
DJGPP编译出来的程序直接在保护模式下运行,完全可以直接声明一个超大的缓冲区
以读取数据,调用中断时的切换就不必担心了,DJGPP直接做好,换平台吧。 |
|
| 第7楼 GOTOmsdos | 发表于 2007-02-23 06:33 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
BC 编译 32位指令的问题,已解决,多谢...
|
|
| 第8楼 GOTOmsdos | 发表于 2007-02-23 09:52 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
下了一些DOS直接访问4GB内存的源码,但都是汇编的,或C中内嵌汇编的,不能用C来调用它们,等于不起作用...
有谁有可以用C直接调用的呢?(最好是能有读写文件的功能,并可一次读写超过64KB的...) |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |