非常に大きなアプリケーションをAndroidに移植しました。TCP / IPを介してバイナリデータを受信し、アプリケーションで時々使用するファイルに書き込みます。ファイルを保存するディレクトリは、デフォルトで./file_cacheに設定されています。ここでうまくいかない:
fileHandle = fopen(filename,"wb");
この場合のファイル名は「file_i」です。ここで、iは0から始まり、ファイルごとに増加します。
プログラムは書き込み中にクラッシュし、最初のファイルでクラッシュする必要はありません。場合によっては、10番目のファイルまでクラッシュします。クラッシュすると、fileHandleはNULLになります。
ファイル名は最初はwcharにありますが、前に変換されます(ロガーで印刷して、正しいことを確認します)。
私が試したこと:
ファイルの読み取り/書き込み外部ストレージと関係があると思われるすべてのアクセス許可を追加しました。
/ sdcard/filesと/data/ data / <package>/filesの異なる場所を試しました
質問:
現在のディレクトリは何ですか。つまり、ファイルは実際にはデフォルト設定のどこにありますか?
fopenがnullを返す原因は何ですか?これがクラッシュの原因です。
どんなアイデアにもとても感謝しています。