Bonjour.
J'essaie d'ouvrir un fichier en lecture, après que ce même fichier ait été ouvert en écriture. J'ai l'erreur 32, File Share Violation.
Le fichier pour l'écriture est créée avec le flag FILE_SHARE_READ, qui autorise les accès en lecture (enfin dixit la documentation).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <windows.h> void main(){ HANDLE hFileWrite = NULL; HANDLE hFileRead = NULL; DWORD dwError; if((hFileWrite = CreateFile("C:\\test.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE){ return; } if((hFileRead = CreateFile("C:\\test.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE){ dwError = GetLastError(); CloseHandle(hFileWrite); return; } CloseHandle(hFileWrite); CloseHandle(hFileRead); }
Partager