J'ai une fonction main.c et une sous-fonction qui y est appelée. Dans la sous-fonction, j'ai utilisé CreateFile
pour créer un fichier. J'utilise ensuite CloseHandle
pour fermer la poignée à ce fichier. Quand j'utilise fopen_s
après cela (dans la sous-fonction) il fonctionne avec les deux modes de lecture et d'écriture. Mais si j'utilise fopen_s
dans la fonction principale par la suite, je peux seulement ouvrir avec un accès en lecture, sinon je reçois le code d'erreur 13 - permission refusée. Les paramètres de ma fonction CreateFile sont les suivantes:C - fopen_s ne peut pas écrire dans un fichier créé par CreateFile
hAppend = CreateFile(centralDataFilepath, // open central data file
FILE_APPEND_DATA, // open for writing
FILE_SHARE_READ|FILE_SHARE_WRITE, // allow multiple readers
NULL, // no security
OPEN_ALWAYS, // open or create
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
Et j'utilise fopen_s
comme suit:
FILE *f2;
errno_t errorCode3 = 0;
errorCode3 = fopen_s(&f2, centralDataFilepath, "a+");
fclose(f2);
Je ne sais pas vraiment si CreateFile n'a rien à voir avec cela, il semble que le l'autorisation du fichier change après que je quitte la sous-fonction? Je dois être capable d'écrire dans ce fichier, est-ce que quelqu'un savoir pourquoi je reçois cette erreur d'autorisation refusée, et comment y remédier?
Si vous avez utilisé 'CreateFile', pourquoi n'utilisez-vous pas la fonction' WriteFile'? –
Veuillez ne pas décrire votre code. Montrez ce code qui fonctionne et affichez le code qui ne fonctionne pas. Veuillez lire ceci: [mcve] et ceci: [demander]. –