我想检查android是否支持系统调用,statfs()。所以,我制作了以下代码来检查它(它是通过ndk编译的):
#include <sys/vfs.h>
#include <stdio.h>
int main()
{
struct statfs diskInfo;
statfs("/data",&diskInfo);
perror("statfs,/data");
unsigned long long blocksize = diskInfo.f_bsize;
unsigned long long totalsize = blocksize * diskInfo.f_blocks;
printf("new TOTAL_SIZE == %lu MB/n",totalsize>>20);
unsigned long long freeDisk = diskInfo.f_bfree*blocksize;
printf("DISK_FREE == %ld MB/n",freeDisk>>20);
return 0;
}
并且编译时没有报错,但是通过adb在android模拟器中运行时,提示如下:
kaiwii@ubuntu:~$ adb shell /data/pwrite/test2
statfs,/data: No such file or directory
new TOTAL_SIZE == 0 MB/nDISK_FREE == 0 MB/n
有什么想法吗?thx