内部内存路径上的fopen返回EISDIR,但不存在任何内容

时间:2013-04-26 21:54:03

标签: android android-ndk

我正在尝试使用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

files目录为空。 当我尝试使用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
#

这可能是什么?

0 个答案:

没有答案