android linux层检测sd卡是否已经mount

项目需要在底层去检测sd卡是否mount上

开机启动过程中,sd卡没有挂载上,/sdcard这个目录也是可写的,只是会把写入的数据都保存到ram里面.

直到sd卡mount上之后,数据才会写到sd卡里.

中间/sdcard文件系统的类型会从ramfs改变到msdos

struct statfs {
  long f_type; /* 文件系统类型 */
  long f_bsize; /* 经过优化的传输块大小 */
  long f_blocks; /* 文件系统数据块总数 */
  long f_bfree; /* 可用块数 */
  long f_bavail; /* 非超级用户可获取的块数 */
  long f_files; /* 文件结点总数 */
  long f_ffree; /* 可用文件结点数 */
  fsid_t f_fsid; /* 文件系统标识 */
  long f_namelen; /* 文件名的最大长度 */
  };

这个类型会在statfs的f_type中反映出来

所以我们只要调用statfs去检测/sdcard这个目录的文件系统类别就好了

只要f_type不是RAMFS_MAGIC = 0x858458f6


sd卡mount上之后得到的f_type是MS_DOS_MAGIC = 0x00004d44

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值