iPhone中获取磁盘剩余空间大小
iPhone中获取磁盘剩余空间大小
1
2
345
6
7
8
|
+ ( long long ) freeDiskSpaceInBytes{ struct statfs buf; long long freespace = -1; if (statfs( "/var" , &buf) >= 0){ freespace = ( long long )(buf.f_bsize * buf.f_bfree); } return freespace; } |
在网上看到的例子中,第四行调用函数 statfs 时给定的参数是”/”,其实是不正确的,因为这样拿到的其实是系统分区的剩余空间,这些空间对我们应用程序来说是没有权限使用的,从df命令来看就可以看得很清楚了:
1
2
3
4
5
|
Filesystem Size Used Avail Use% Mounted on /dev/disk0s1 1.0G 596M 418M 59% / devfs 36K 36K 0 100% /dev /dev/disk0s2s1 14G 14G 842M 95% / private /var /dev/disk1 178M 40M 138M 23% /Developer |
根目录下挂载的分区是 /dev/disk0s1,而对我们来说有用的是 /dev/disk0s2s1。而在iphone或者itunes上面所看到的剩余空间大小也是这个分区的剩余空间大小。从这里,我们也可以很明显的看出 标识为16G的iPhone是怎么只有14G的。