Boost logo

Boost :

From: Roman Dementiev (dementiev_at_[hidden])
Date: 2005-02-08 07:31:35


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/setfilepointer.asp

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/Default.asp?url=/resources/documentation/Windows/XP/all/reskit/en-us/prkc_fil_tdrn.asp

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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk