main.c関数とその中で呼び出されるサブ関数があります。サブ関数では、私はCreateFile
を使ってファイルを作りました。次に、CloseHandle
を使用して、そのファイルのハンドルを閉じます。それ以降(サブ関数内で)fopen_s
を使用すると、読み取りと書き込みの両方のモードで動作します。しかし、後でmain関数にfopen_s
を使用すると、私は読み取りアクセスでしか開くことができない、そうでなければエラーコード13が返されます - 許可が拒否されました。C - fopen_sは、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
そして、次のように私はfopen_s
を使用します:次のように私のCreateFile関数のパラメータは、
FILE *f2;
errno_t errorCode3 = 0;
errorCode3 = fopen_s(&f2, centralDataFilepath, "a+");
fclose(f2);
のCreateFileはこれを行うには何も持っている場合、私は実際には知らないが、それはのように思えますサブ関数を終了すると、ファイルのアクセス権が変更されますか?私はこのファイルに書き込めるようにする必要があります。なぜ誰かがこの許可を拒否された理由を知っていますか?それを修正する方法は?
'CreateFile'を使用した場合、なぜ' WriteFile'関数も使用しないのですか? –
コードを記述しないでください。そのコードを表示し、動作しないコードを表示します。これを読んでください:[mcve]とこれ:[ask]。 –