繁体   English   中英

在C程序中安装SD卡

[英]mount of SD card in C program

我的环境: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程序挂载文件系统的通常方法是使用系统调用。 分叉一个单独的进程来运行Shell命令(即,使用system功能)效率低下,并且容易出现错误(例如,shell注入安全漏洞),并且使您的控制更少。 调用mkdir程序也是如此。 只需使用mkdir(2)系统调用即可。 (上面的程序本质上是用C编写的shell脚本,这很愚蠢。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM