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:
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); }