
Beman Dawes wrote:
At 01:56 PM 2/7/2005, christopher diggins wrote:
On most (many/all?) windows platforms you can not have files of more than 2GB, so I'd suggest you write the code to work with this restriction.
That is not correct. Windows has supported large files for many years. I've got a Win32 Programmer's Reference copyright 1993 which includes the functions supporting file sizes greater than 2 GB, so support has existed at least since '93 for all Windows versions which support the Win32 API.
Yes, large files sizes are supported by Windows API for many years. e.g. seeking function: DWORD SetFilePointer( HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod ); But the question whether the 64-bit offset functionality is really implemented. The recent MSDN tells that under Windows Me/98/95 lpDistanceToMoveHigh is not supported :( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base... Pupular Windows file systems do not support large files by it's design, e.g. FAT16, FAT32. http://www.microsoft.com/resources/documentation/Windows/XP/all/reskit/en-us... I fear in order to support these enviroments one has to follow "the vector of files" approach by Christopher.
Most, if not all, current POSIX implementations also support large file sizes. Like Windows, this support has been available for many years.
not really true: http://www.suse.de/~aj/linux_lfs.html e.g. Linux supports large files only since 2.3 kernel. But it seems that design of POSIX/Unix file systems supports the large files from the beginning. Roman