asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2004-08-05 11:25
地址是INT型的,在32位系统里是4Byte
所以最大也就4G

说16t的文件的,我倒真是不懂了
文件offset用多少位表示????

FAT32是2的32次方个簇,不会每个簇只有一个字节吧。至于OFFSET可以用LARGE_INTEGER吗。
不过MSDN上确实是说最大2G,加某些参数可以达到4G。至于不能再大,完全是别的原因。
petz
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2015-12-19
  • 粉丝0
  • 关注0
  • 积分-22276分
  • 威望15点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2004-08-05 11:33
用户被禁言,该主题自动屏蔽!
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2004-08-05 11:35
我又找到了证据

所有语言
包括C/C++/VB/JAVA的文件长度函数的返回值都是一个LONG型的数值
单位为字节

所以,WIN2000所支持的最大文件大小也就是LONG的最大值了
这样解释合理不?
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2004-08-05 11:37
[quote]地址是INT型的,在32位系统里是4Byte
所以最大也就4G

说16t的文件的,我倒真是不懂了
文件offset用多少位表示????

FAT32是2的32次方个簇,不会每个簇只有一个字节吧。至于OFFSET可以用LARGE_INTEGER吗。
不过MSDN上确实是说最大2G,加某些参数可以达到4G。至于不能再大,完全是别的原因。 [/quote]

――――――――――――――――――
我将的是程序设计里的文件偏移,它的单位是字节,不是簇,簇很底层的概念了
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
24楼#
发布于:2004-08-05 11:40
用户被禁言,该主题自动屏蔽!
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2004-08-05 11:41
我又找到了证据

所有语言
包括C/C++/VB/JAVA的文件长度函数的返回值都是一个LONG型的数值
单位为字节

所以,WIN2000所支持的最大文件大小也就是LONG的最大值了
这样解释合理不?

不完全对,“C/C++/VB/JAVA的文件长度函数”应该为“WIN API的文件长度函数”,我敢肯定WINDOWS肯定不会用C的运行时库,所以跟什么语言没有关系。如:
BOOL WriteFile(
  HANDLE hFile,                    // handle to file
  LPCVOID lpBuffer,                // data buffer
  DWORD nNumberOfBytesToWrite,     // number of bytes to write
  LPDWORD lpNumberOfBytesWritten,  // number of bytes written
  LPOVERLAPPED lpOverlapped        // overlapped buffer
);
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2004-08-05 11:48
LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

windows程序大多一定会用到这三个库(不准确,但就那个意思)

我是这样理解的
文件是要靠应用程序去处理的
如果你的文件长度超过了API的处理长度
那么这样大的文件OS就是不能支持的

道理就好像BIOS只支持137G的空间,你却买了个250G的硬盘,要么升级BIOS,要么就不能完全使用你的硬盘,没有其他选择。


[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2004-08-05 12:11
LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

windows程序大多一定会用到这三个库(不准确,但就那个意思)

我是这样理解的
文件是要靠应用程序去处理的
如果你的文件长度超过了API的处理长度
那么这样大的文件OS就是不能支持的

道理就好像BIOS只支持137G的空间,你却买了个250G的硬盘,要么升级BIOS,要么就不能完全使用你的硬盘,没有其他选择。


 

基本就是这个意思,但是有一点
“windows程序大多一定会用到这三个库(不准确,但就那个意思)”,可是WINDOWS系统肯定不用这几个库。你可DEBUG一下fwrite这个C库函数,最终会到INT 2E的,也就是最终调用的是所说的UnDocument函数,一般是有一个API函数和其对应。
petz
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2015-12-19
  • 粉丝0
  • 关注0
  • 积分-22276分
  • 威望15点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2004-08-05 12:16
用户被禁言,该主题自动屏蔽!
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
29楼#
发布于:2004-08-05 13:55
用户被禁言,该主题自动屏蔽!
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2004-08-05 14:44
[quote]LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

windows程序大多一定会用到这三个库(不准确,但就那个意思)

我是这样理解的
文件是要靠应用程序去处理的
如果你的文件长度超过了API的处理长度
那么这样大的文件OS就是不能支持的

道理就好像BIOS只支持137G的空间,你却买了个250G的硬盘,要么升级BIOS,要么就不能完全使用你的硬盘,没有其他选择。


 

基本就是这个意思,但是有一点
“windows程序大多一定会用到这三个库(不准确,但就那个意思)”,可是WINDOWS系统肯定不用这几个库。你可DEBUG一下fwrite这个C库函数,最终会到INT 2E的,也就是最终调用的是所说的UnDocument函数,一般是有一个API函数和其对应。 [/quote]
――――――――――――――――――――――
对的

windows系统肯定是走INT 2E
windows程序是在WINDOWS系统里运行的程序
――――――――――――――――――――――
我看看大于4G的文件怎么处理
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2004-08-05 14:45
有没有我的分啊

我放了这么多纯净水
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2004-08-05 15:40
[quote]FAT32分区有4G文件大小限制,别的就不清楚了

你在哪里,深圳,住在桃源村? [/quote]
哈哈,自己猜吧,像你这么猜法,永远也猜桃园村在哪!
AthlonxpX86(桃源村)
jec017
驱动太牛
驱动太牛
  • 注册日期2002-08-22
  • 最后登录2008-01-09
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2004-08-05 20:26
有没有我的分啊

我放了这么多纯净水
 


矿物质水才有分!
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2004-08-16 20:22
哈哈,看来大家讨论很好啊。

我觉得限制没什么关系,大不了多开几个文件。

还是2G一个文件比较合适。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
35楼#
发布于:2004-08-16 20:28
windows系统肯定是走INT 2E

一派胡言,在XP/2003以后你HOOK INT 2EH有个屁用????
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
36楼#
发布于:2004-08-16 20:47
我用过大于128G的大文件,只能在Server 2003 NTFS下可以,在其他操作系统下,当文件超过100G左右的时候,系统就崩溃了.
jec017
驱动太牛
驱动太牛
  • 注册日期2002-08-22
  • 最后登录2008-01-09
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2004-08-17 15:39
我用过大于128G的大文件,只能在Server 2003 NTFS下可以,在其他操作系统下,当文件超过100G左右的时候,系统就崩溃了.
Sundsea
驱动老牛
驱动老牛
  • 注册日期2003-05-06
  • 最后登录2012-06-05
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望35点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
38楼#
发布于:2004-08-17 18:45
[quote]我用过大于128G的大文件,只能在Server 2003 NTFS下可以,在其他操作系统下,当文件超过100G左右的时候,系统就崩溃了.
[/quote]
上一页 下一页
游客

返回顶部