我無法創建命名的共享內存並檢查其大小。當我在像這樣的函數中調用GetFileSizeEx函數時失敗。有關如何調試的任何想法?GetFileSizeEx文件映射失敗
void test_getsize(const char* lpName, int size){
HANDLE handle = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
size, // maximum object size (low-order DWORD)
lpName); // name of mapping object
if (handle== NULL || handle== INVALID_HANDLE_VALUE){
last_error = get_error_from_errorno();
*error_return =1;
}
LARGE_INTEGER new_size;
err = GetFileSizeEx(handle, &new_size);
if (err==0){ printf("err ");} else {printf("pass ");}
printf("size=%lu\n", (unsigned long)new_size.QuadPart);
}
這段代碼的結果是什麼? –
您沒有使用文件,無法獲取不存在文件的大小。 –
我遲了一點(很多?),但爲什麼不使用MapViewOfFile/VirtualQuery? – 2013-03-06 15:22:10