2

ndk を使用して /data/data/com.package/files/ にファイルを書き込もうとしています。

「/proc/PID/cmdline」を使用して、アプリケーションの正しいパスを取得します。パスは正しいです。

Java で getFilesDir を呼び出したので、ファイル パスが作成されました。

Log.d("MAIN", "Files dir: "+getFilesDir().toString());

私のデバイスはルート化されており、次のパスをスヌープできます。

# ls -la /data/data/com.package
drwxrwx--x app_149  app_149           2013-04-26 16:33 cache
drwxrwx--x app_149  app_149           2013-04-26 17:06 files
drwxr-xr-x system   system            2013-04-26 18:26 lib

ファイル ディレクトリが空です。fopen を使用して files ディレクトリ内にファイルを作成しようとすると、EISDIR で失敗します。

FILE *fp= NULL;
fp= fopen("/data/data/com.package/files/test.txt","w"); // FAILS with errno 21 (EISDIR)

EISDIR は、指定されたファイルがディレクトリであると言うはずですが、ディレクトリ内にファイルはありません!

# ls -la /data/data/com.package/files
#

これは何ですか?

4

0 に答える 0