J'ai des problèmes pour créer une mémoire partagée nommée et inspecter sa taille. La fonction GetFileSizeEx échoue lorsque je l'appelle dans une fonction comme celle-ci. Des idées sur la façon de déboguer cela?GetFileSizeEx échoue pour le mappage de fichier
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);
}
Et quel est le résultat de ce code? –
Vous n'utilisez pas un fichier, vous ne pouvez pas obtenir la taille d'un fichier inexistant. –
Je suis un peu (beaucoup?) En retard, mais pourquoi n'utilisez-vous pas MapViewOfFile/VirtualQuery? –