Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Worst programmer ever?

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?

Name: Anonymous 2007-07-26 10:25 ID:kmDLYctK

Yes, you possibly are the worst programmer, ever.

Your two functions go from one extreme to another. In one, you  process the stream one byte at a time, while in the other, you process the entire stream in one shot.

The first is unnecessarily slow. The second is unnecessarily wasteful on memory.

Also, just for fun, run your second function on a 5 GB stream and see what happens. You'll shit bricks when you see it.

Also, you fucking forgot to free the allocated memory like a jackass.

Also, reinventing the wheel, etc. library functions, motherfucker, do you use them?

/thread

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List