Name: Anonymous 2007-07-26 10:03 ID:4JryrsBt
So I wrote a function to copy a specified number of bytes
from one stream to another:
void vCopyFile(FILE *fIn, FILE *fOut, int iNum) {
while (iNum--)
(void)fputc(fgetc(fIn), fOut);
}
I was told the following:
20:34:53 < dinesh> wow
20:35:00 < dinesh> probably one of the worst function i ever saw
So I changed it to this:
void vCopyFile(FILE *fIn, FILE *fOut, int iNum) {
char *cBuf = (char*)malloc(iNum);
int iRead;
iRead = fread(cBuf, 1, iNum, fIn);
fwrite(cBuf, 1, iRead, fOut);
}
Both functions work on Linux but seem to skip bytes when
crosscompiled with mingw32-gcc or visual studio.
What am I doing wrong?
from one stream to another:
void vCopyFile(FILE *fIn, FILE *fOut, int iNum) {
while (iNum--)
(void)fputc(fgetc(fIn), fOut);
}
I was told the following:
20:34:53 < dinesh> wow
20:35:00 < dinesh> probably one of the worst function i ever saw
So I changed it to this:
void vCopyFile(FILE *fIn, FILE *fOut, int iNum) {
char *cBuf = (char*)malloc(iNum);
int iRead;
iRead = fread(cBuf, 1, iNum, fIn);
fwrite(cBuf, 1, iRead, fOut);
}
Both functions work on Linux but seem to skip bytes when
crosscompiled with mingw32-gcc or visual studio.
What am I doing wrong?