簡體   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