Boost logo

Boost :

Subject: Re: [boost] [iostreams]mapped_file bug on Win32?
From: eg (egoots_at_[hidden])
Date: 2010-02-22 13:17:02

On 2/21/2010 11:05 PM, eg wrote:

>> Shortly thereafter is a call to SetFilePointer. The docs say that the
>> proper way to check for an error from SetFilePointer is to compare its
>> return value to INVALID_SET_VALUE_POINTER.
> According to the docs... that seems to only be true if the 3rd parameter
> is NULL.
> Otherwise:
> "If function succeeds and lpDistanceToMoveHigh is not NULL, the return
> value is the low-order DWORD of the new file pointer and
> lpDistanceToMoveHigh contains the high order DWORD of the new file
> pointer."

Oops... I forgot to add the next line in the quote, which makes my point
more understandable:

"If the function fails, the return value is INVALID_SET_FILE_POINTER. To
get extended error information, call GetLastError."

I was just trying to point out there is a case in which GetLastError()
should be called.

The remarks section shows sample code such as the following:

// Try to move hFile file pointer a huge distance
        DWORD dwPtrLow = SetFilePointer( hFile,
                                      FILE_BEGIN );
        // Test for failure
        if ( dwPtrLow == INVALID_SET_FILE_POINTER &&
             GetLastError() != NO_ERROR )
                // Deal with failure
                // . . .

        } // End of error handler

Boost list run by bdawes at, gregod at, cpdaniel at, john at