我的环境: 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程序中安装SD卡的一种正常方式吗?还是在C程序中使用了什么特殊的系统调用/API来安装SD?
发布于 2014-09-09 02:08:18
挂载文件系统是通过山(2)系统调用完成的。这就是mount程序(您通过system调用的)实际上所做的事情。
从C程序挂载文件系统的正常方法是使用系统调用。分叉出单独的进程来运行shell命令(即使用system函数)效率低下,容易出现错误(例如shell注入安全漏洞),给您更少的控制。调用mkdir程序也是如此;只需使用mkdir(2)系统调用即可。(上面的程序本质上是用C编写的shell脚本,这很愚蠢。)
https://stackoverflow.com/questions/25735642
复制相似问题