text: #define _FILE_OFFSET_BITS 64
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <windows.h>
  #include <shlobj.h>
  
  static const char *writebuf = "TESTVECTORSTRING";
  static wchar_t szPath[MAX_PATH];
  
  static int writefile(wchar_t *path){
    OVERLAPPED ov;
    DWORD dwResult;
    memset(&ov,0,sizeof(OVERLAPPED));
    ov.Offset = 0x0;
    ov.OffsetHigh = 0x1;
    HANDLE fd = CreateFileW(path,GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (fd == INVALID_HANDLE_VALUE) return 1;
    SetFilePointer (fd, ov.Offset, &ov.OffsetHigh, FILE_BEGIN);
    WriteFile(fd, writebuf, strlen(writebuf), &dwResult, NULL);
    dwResult = WaitForSingleObject(fd, INFINITE);
    while(dwResult==WAIT_IO_COMPLETION)
    {
      dwResult = WaitForSingleObject(fd, INFINITE);
    }
    CloseHandle(fd);
    return 0;
  }
  
  static int testread(wchar_t *path){
    FILE *fd;
    char *readbuff;
    int ret;
  
    readbuff = calloc(sizeof(char),strlen(writebuf) + 1);
    if (!readbuff) return 1;
  
    fd = _wfopen(path, L"r+bc");
    if (!fd) {
      free(readbuff);
      return 1;
    }
    fseeko(fd,0x100000000LL,SEEK_SET);
    fread(readbuff,sizeof(char),strlen(writebuf),fd);
    ret = strncmp(readbuff,writebuf,strlen(writebuf));
    free(readbuff);
    fclose(fd);
    return ret;
  }
  
  int main(int argc, char **argv){
    int check;
    wchar_t *path;
    SHGetFolderPathW(NULL,CSIDL_PERSONAL,NULL,0,szPath);
    path = _wtempnam(szPath, L"mingw-w64-lfs64-test-");
  #ifdef debugtest
    wprintf(L"Path: %ws\n", path);
  #endif
    if (!path) return 1;
  
    check = writefile(path);
    if (check) goto err; /* error creating large file */
    check = testread(path);
  
    err:
  #ifndef debugtest
    DeleteFileW(path); /* Delete anyway */
  #endif
    free(path);
    printf ("check: %d\n", check);
    return check;
  }
  