我在Linux系统上使用c ++代码。
在我的代码中,我目前正在使用mount()
函数(使用#include <sys/mount.h>
)在"mmcblk1p1"
中安装名为dev. --> /dev/mmcblk1p1
的SD卡是我的SD卡。
我可以成功挂载,将内容写入其中,使用umount()
c ++函数卸载它。到目前为止一切都很好。
现在,我想在写任何内容之前知道什么是可用空间。 为此,我在我的算法中使用这个Linux终端命令:
FILE *stream = popen("df /dev/mmcblk1p1", "r");
我能够获得流输出,并获取所需的值。
我的问题是:
如果我在命令行中手动进行(没有c ++算法..),我可以挂载我的SD卡,使用df
命令,并得到以下响应:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk1p1 7555072 124544 7430528 2% /mnt/usb
值7430528绝对正确,这是我想要的那个。 但是,如果我继续使用我的c ++编程,我会得到类似的东西:
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 328668 4 328664 1% /dev
由于某种原因,似乎我的算法安装了SD卡时,操作系统在使用df
命令后给出的响应是错误的,根本不涉及SD卡。在我的算法中,我成功获得了值328664,但不幸的是,这与我的SD卡不对应。
如果有任何想法,非常感谢你的帮助。
此致