gpt4 book ai didi

c - C程序挂载SD卡

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:52 26 4
gpt4 key购买 nike

我的环境:Xilinx/Zynq Soc 上的 Petalinux

我正在尝试安装 microSD 卡。我确认以下代码可以在 root 登录下挂载 SD。

#include <stdio.h>

int main(void)
{
int ret;
ret = system("mkdir /media/card");
printf("%d\n", ret);

ret = system("mount /dev/mmcblk0p1 /media/card");
if (ret == 0) {
printf("sd mounted to /media/card\n");
} else {
printf("sd mount : fail\n");
}
}

这是在linux C程序中挂载SD卡的正常方式吗?或者在C程序中是否使用了特殊的系统调用/API来挂载SD?

最佳答案

安装文件系统是通过 mount(2) 完成的系统调用。这就是 mount 程序(您通过 system 调用的程序)实际执行的操作。

从 C 程序挂载文件系统的正常方法是使用系统调用。 fork 一个单独的进程来运行 shell 命令(即使用 system 函数)效率低下并且容易出现错误(例如 shell 注入(inject)安全漏洞),并且给你更少的控制。调用mkdir 程序也是如此;只需使用 mkdir(2)系统调用代替。 (你上面的程序本质上是一个用 C 编写的 shell 脚本,这很愚蠢。)

关于c - C程序挂载SD卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25735642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com