在C程序中安装SD卡

时间:2014-09-09 01:55:35

标签: c linux embedded-linux

我的环境: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程序中是否使用了特殊的systemcall / API来挂载SD?

1 个答案:

答案 0 :(得分:2)

使用mount(2)系统调用挂载文件系统。这就是mount程序(您通过system调用的程序)实际执行的操作。

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