c语言如何实现彻底删除文件

FrankJT 2020-02-12 11:43:25
Hi:
我最近在做一个项目,其中对sd卡的操作,我需要实现文件的删除和彻底删除。
文件删除很简单,调用remove函数就可以了,彻底删除文件,我不知道该如何做。
linux的shred或者wipe命令可以实现,但是我不能用system(), 大家有什么建议么?
...全文
640 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Golden_Chen 2020-02-21
  • 打赏
  • 举报
回复
如果SD是FAT格式的话, 文件删除只是把文件目录表的目录项用0xD5(应该是这个)标注,实际不动文件数据。 所以要彻底删除,你还得要把文件所在数据所在的所有扇区都清空。 你可以照这样思路做。
不过文件永久保存,就不好办了,如果SD不开启写保护的话,那理论上所以SD空间都可以被强制格式化的,而写保护没办法单独针对一块区域。一种办法就是把SD卡分成2两个分区, 一个分区不可见隐藏,另一个分区正常使用,但用分区软件,还是可以找到并删除的。
FrankJT 2020-02-12
  • 打赏
  • 举报
回复
还要实现永久保存。 我有个思路是,在sd卡建立一个永久保存的分区,格式化的时候不删除这个分区,这算永久保存。 对于要永久删除的文件,我建立一个分区,把该文件放到这个分区,然后将其格式化,这样就永久删除了。 这样的方法是否可行,或者还有什么好办法么,我感觉我这样有点蠢。
牛不才 2020-02-12
  • 打赏
  • 举报
回复
彻底删除,首先你要根据文件的元信息(inode),找到文件数据所在的块位置,然后把这些位置通通重写成0

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧