Ouverture de fichier avec ofstream en écriture exclusive ???
Bonsoir à tous,
Mon appli écrit dans un fichier grâce à des ofstream et flux ( monFichier << "titi" << endl; ).
J'ouvre le fichier avec notepad pendant que mon appli écrit dedans. Je ferme notepad puis réouvre ce même fichier, je vois alors les nouvelles écritures faites par mon appli pendant que je lisais le fichier.
Mon problème est que lorsque je l'ouvre avec Excel par exemple, cela bloque les écritures de mon appli, et plus aucune écriture n'est ajoutée dans ce fichier par mon appli (sauf si je la redémarre). Je suppose qu'Excel modifie les permissions...
J'ai trouvé dans la MSDN le prototype de , qui en 3ème paramètre attend un droit d'accès.
http://msdn.microsoft.com/en-us/libr...hc(VS.80).aspx
C'est ce droit qui m'intéresse car je souhaite interdire Excel d'empêcher mon appli d'écrire dans ce fichier !!! :aie:
Or sous Visual 6 apparemment, le droit filebuf::sh_read existait mais a disparu sous Visual 2005... !
Savez-vous comment puis-je faire pour interdire les autres applications à bloquer l'accès à mon fichier lorsque j'écris dedans ?
Merci d'avance :ccool:
N.B. : Le plus étonnant est que lorsque j'ouvre le fichier avec Excel, il me demande si je veux l'ouvrir en lecture seule et je lui réponds OUI ! Donc pourquoi me bloque-t-il l'accès ??? :calim2:
Actuellement, j'ouvre mon fichier de la façon suivante :
Code:
1 2 3
| ofstream monFichier;
monFichier.open("C:\\toto.xls", ios_base::app);
monFichier << "titi" << endl; |