Re: Very large files

2006-06-28 Thread Damjan Jovanovic
I tested it (code to copy a file below, file was > 4
GB) and it works.

I'm using Gentoo 2006.0, Linux 2.6.15.1, ReiserFS 3
and wine 0.9.15.

Can you find out whether the broken code is using
KERNEL32, NTDLL, MSVCRT streams or MSVCRT POSIX-style
open()/read() etc.?

#include 
#include 

int main(int argc, char **argv)
{
HANDLE inputFile = INVALID_HANDLE_VALUE, outputFile =
INVALID_HANDLE_VALUE;
const int bufferSize = 8*1024;
char buffer[bufferSize];
DWORD bytesRead;
BOOL ok;

if (argc < 3)
{
fprintf(stderr, "Usage: %s source destination\n",
argv[0]);
return 1;
}


inputFile = CreateFile(argv[1], GENERIC_READ,
FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
if (inputFile == INVALID_HANDLE_VALUE)
{
fprintf(stderr, "Error opening %s\n", argv[1]);
goto done;
}

outputFile = CreateFile(argv[2], GENERIC_WRITE, 0,
NULL,
CREATE_ALWAYS, 0, NULL);
if (outputFile == INVALID_HANDLE_VALUE)
{
fprintf(stderr, "Error opening %s\n", argv[2]);
goto done;
}

ok = ReadFile(inputFile, buffer, bufferSize,
&bytesRead, NULL);
if (!ok)
{
fprintf(stderr, "Error reading file\n");
goto done;
}
while (bytesRead > 0)
{
DWORD bytesWritten = 0, bytesWrittenNow;
do
{
ok = WriteFile(outputFile, buffer, bytesRead,
&bytesWrittenNow,
NULL);
if (!ok)
{
fprintf(stderr, "Error writing file\n");
goto done;
}
bytesWritten += bytesWrittenNow;
} while (bytesWritten < bytesRead);

ok = ReadFile(inputFile, buffer, bufferSize,
&bytesRead, NULL);
if (!ok)
{
fprintf(stderr, "Error reading file\n");
goto done;
}
};

done:
if (inputFile != INVALID_HANDLE_VALUE)
CloseHandle(inputFile);
if (outputFile != INVALID_HANDLE_VALUE)
CloseHandle(outputFile);
return 0;
}




--- John Willis <[EMAIL PROTECTED]> wrote:

> Damjan,
> 
> Linux kernel: 2.4.21-20.ELsmp
> Filesystem:ext3
> 
> Thanks for looking into this for me,
> 
> John
> 
> - Original Message - 
> From: "Damjan Jovanovic" <[EMAIL PROTECTED]>
> To: "John Willis" <[EMAIL PROTECTED]>;
> 
> Sent: Sunday, June 25, 2006 11:31 PM
> Subject: Re: Very large files
> 
> 
> > 
> > 
> > --- John Willis <[EMAIL PROTECTED]> wrote:
> > 
> >> Howdy,
> >> 
> >> I have a large VS 6.0 C++ program and I'm running
> it
> >> under WINE under Redhat Linux. 
> >> Everything works fine, but it doesn't handle file
> >> sizes greater than 4gb like it can running 
> >> directly under Windows XP. 
> >> I've tweaked everything that I can find that
> seems
> >> to deal with file sizes. 
> > 
> > How do you access the file? With stdio streams
> > (fopen(), fread(), ...), MSVCRT's open()/read(),
> or
> > with KERNEL32's CreateFile(), ReadFile(), ... ?
> > 
> >> Is there a problem with WINE itself handling very
> >> large file sizes? 
> > 
> > Which version of the Linux kernel and which
> filesystem
> > are you using?
> > 
> > I'll run some tests at home and see whether it
> works
> > for me.
> > 
> >> Thanks in advance,
> >> John> 
> >> 
> > 
> > 
> > __
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around 
> > http://mail.yahoo.com
> 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




Re: Very large files

2006-06-25 Thread Damjan Jovanovic


--- John Willis <[EMAIL PROTECTED]> wrote:

> Howdy,
> 
> I have a large VS 6.0 C++ program and I'm running it
> under WINE under Redhat Linux. 
> Everything works fine, but it doesn't handle file
> sizes greater than 4gb like it can running 
> directly under Windows XP. 
> I've tweaked everything that I can find that seems
> to deal with file sizes. 

How do you access the file? With stdio streams
(fopen(), fread(), ...), MSVCRT's open()/read(), or
with KERNEL32's CreateFile(), ReadFile(), ... ?

> Is there a problem with WINE itself handling very
> large file sizes? 

Which version of the Linux kernel and which filesystem
are you using?

I'll run some tests at home and see whether it works
for me.

> Thanks in advance,
> John> 
> 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




Re: Very large files

2006-06-24 Thread Marcus Meissner
On Fri, Jun 23, 2006 at 01:48:31PM -0700, John Willis wrote:
> Howdy,
> 
> I have a large VS 6.0 C++ program and I'm running it under WINE under Redhat 
> Linux. 
> Everything works fine, but it doesn't handle file sizes greater than 4gb like 
> it can running 
> directly under Windows XP. 
> I've tweaked everything that I can find that seems to deal with file sizes. 
> Is there a problem with WINE itself handling very large file sizes? 

It always depends on what functions it uses. Not all places in WINE might be 
working for files
larger than 4GB.

Can you give us +relay,+file traces of such failures?

Ciao, Marcus 




Re: Very large files

2006-06-23 Thread Vijay Kiran Kamuju

Hi,

I think its dependent on the filesystem and the kernel version you are running.
What is the Redhat linux version you are using snd the kernel version
you are using.

Thanks,
Vijay

On 6/23/06, John Willis <[EMAIL PROTECTED]> wrote:


Howdy,

I have a large VS 6.0 C++ program and I'm running it under WINE under Redhat
Linux.
Everything works fine, but it doesn't handle file sizes greater than 4gb
like it can running
directly under Windows XP.
I've tweaked everything that I can find that seems to deal with file sizes.
Is there a problem with WINE itself handling very large file sizes?

Thanks in advance,
John









Very large files

2006-06-23 Thread John Willis



Howdy,
 
I have a large VS 6.0 C++ program and I'm running it under WINE under 
Redhat Linux. Everything works fine, but it doesn't handle file sizes 
greater than 4gb like it can running 
directly under Windows XP. I've tweaked everything that I can find that 
seems to deal with file sizes. Is there a problem with WINE itself handling 
very large file sizes? 
 
Thanks in advance,
John