13 Security Lab

[API] SetEndOfFile(), Set "EOF" where Current FilePointer indicates 본문

Computer Science/Programming

[API] SetEndOfFile(), Set "EOF" where Current FilePointer indicates

Maj0r Tom 2014. 4. 15. 23:40

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365531(v=vs.85).aspx


Do refer MSDN, It's enough to understand.


"It works only when you got handle using CreateFile()"


typedef uint64_t fsize_t;
int file_resize(const char* path, fsize_t newsize)
{
    HANDLE hFile = CreateFile(path, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
    if (hFile == INVALID_HANDLE_VALUE) return -1;
    LARGE_INTEGER liDistanceToMove;
    liDistanceToMove.QuadPart = (LONGLONG) newsize;
    BOOL success;
    success = SetFilePointerEx(hFile, liDistanceToMove, NULL, FILE_BEGIN);
    if (success)
        success = SetEndOfFile(hFile);
    CloseHandle(hFile);
    return (success) ? 0 : -1;
}

 



Comments