MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / my_win_pwrite

Function my_win_pwrite

mysys/my_winfile.c:361–393  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

359
360
361size_t my_win_pwrite(File Filedes, const uchar *Buffer, size_t Count,
362 my_off_t offset)
363{
364 DWORD nBytesWritten;
365 HANDLE hFile;
366 OVERLAPPED ov= {0};
367 LARGE_INTEGER li;
368
369 DBUG_ENTER("my_win_pwrite");
370 DBUG_PRINT("my",("Filedes: %d, Buffer: %p, Count: %llu, offset: %llu",
371 Filedes, Buffer, (ulonglong)Count, (ulonglong)offset));
372
373 if(!Count)
374 DBUG_RETURN(0);
375
376#ifdef _WIN64
377 if(Count > UINT_MAX)
378 Count= UINT_MAX;
379#endif
380
381 hFile= (HANDLE)my_get_osfhandle(Filedes);
382 li.QuadPart= offset;
383 ov.Offset= li.LowPart;
384 ov.OffsetHigh= li.HighPart;
385
386 if(!WriteFile(hFile, Buffer, (DWORD)Count, &nBytesWritten, &ov))
387 {
388 my_osmaperr(GetLastError());
389 DBUG_RETURN((size_t)-1);
390 }
391 else
392 DBUG_RETURN(nBytesWritten);
393}
394
395
396my_off_t my_win_lseek(File fd, my_off_t pos, int whence)

Callers 1

my_pwriteFunction · 0.85

Calls 2

my_get_osfhandleFunction · 0.85
my_osmaperrFunction · 0.85

Tested by

no test coverage detected