others - 在Linux C++应用程序中,不使用system,格式化SD卡

我有一个应用程序,我在可移动媒体上写入数据(SD card/pendrive ),现在,我想添加一个功能,我可以格式化SD卡,以防它没有正确挂载或损坏的理由。

我知道我可以使用system()方法调用诸如mkfs.ext4这样的底层程序来格式化可移动分区,就像我们通过终端所做的一样,或者一个重新卸载,但是,我想避免system()调用,因为:

它产生一个新的shell,我将没有控制,在这种情况下,我无法检查卸载/格式化/重新装载的状态,这会妨碍我在应用程序中正确处理错误,有没有一个系统库,我可以用C++方法(使用APIs/方法调用)来执行相同的任务,而不必调用system(),然后在。

如果我误解了什么,请纠正。

请推荐。

谢谢

时间:

libext2fs-dev和e2fslibs-dev软件包(请参阅ext2fs/ext2fs.h中的ext2fs_initialize函数)。

2.1.3初始化文件系统

'ext2fs_initialize '和'ext2fs_allocate_tables '完成了设置文件系统的大部分初始工作。'mke2fs '调用'ext2fs_initialize '设置文件系统超级块,并调用'ext2fs_allocate_tables '为inode表以及inode和块位图分配空间。

项目的快照(git repo https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git)

...