我有一个应用程序,用于在可移动媒体(SD卡/ Pendrive)上写数据。现在,我想添加一项功能,以便在SD卡未正确安装或由于任何原因损坏时可以格式化SD卡。
我知道我可以使用system()方法来调用诸如mkfs.ext4之类的基础实用程序来格式化可移动分区,就像我们通过终端进行的操作一样,或者使用bash脚本来卸载,格式化和重新安装可移动介质。但我想避免system()调用,因为:
它产生了一个新的外壳,我无法控制它。在这种特殊情况下,我无法检查卸载/格式化/重新安装的状态,这使我无法正确处理应用程序中的错误。是否可以使用系统库以C ++方式(使用API /方法调用)完成相同的任务,而不必先调用system(),然后再调用其中的bash脚本。
如果我误解了,请纠正。
请提出建议。
谢谢
2.1.3初始化文件系统
ext2文件系统正在由'mke2fs'程序初始化。他们俩此处描述的函数“ ext2fs_initialize”和'ext2fs_allocate_tables'完成了许多初始工作,以建立一个文件系统。但是,他们不能完成全部工作。 'mke2fs'调用'ext2fs_initialize'设置文件系统超级块,并调用'ext2fs_allocate_tables'为inode表分配空间,并且inode和块位图。此外,“ mke2fs”还必须通过用零清除来初始化inode表,创建根目录和lost + found目录,并保留保留的inode。
如果您想快速浏览一下,我也找到了this online pdf file ...