在Linux中使用C挂载USB驱动器

3

我想在Linux中编程挂载USB驱动器,这样我就可以使用fprintf写入文本文档。我在寻找如何挂载驱动器的方法时遇到了困难。我在网上搜索了很多关于如何通过命令行完成此操作的教程,但没有找到C语言的相关内容。请问有人能指点我吗?


3
请查看 mount 的手册页 - http://www.kernel.org/doc/man-pages/online/pages/man2/mount.2.html,简短版本调用 mount 系统调用。 - Ulrich Dangel
1
@mru:我相信它可以发布为答案。 :) - Jack
1个回答

12
man 2 mount

例如。

#include <sys/mount.h>

if (mount("/dev/mmcblk0p1", "/mnt/sd", "vfat", MS_NOATIME, NULL)) {
    if (errno == EBUSY) {
        printf("Mountpoint busy");
    } else {
        printf("Mount error: %s", strerror(errno));
    }
} else {
    printf("Mount successful");
}

这绝不是批评!我如何解释 manpages 中所写的内容,并编写一个正确格式(如上所示)的 C 挂载调用? - Enok82
如何将这些信息转化为一个挂载调用?T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0 D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1 P: Vendor=0951 ProdID=1666 Rev=01.10 S: Manufacturer=Kingston S: Product=DataTraveler 3.0 S: SerialNumber=4CED0000A3AAAAA039970000 C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=504mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms - William Deans
如何将此信息转换为挂载调用? T:总线=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=5000 MxCh=0 D:Ver=3.20 Cls=00(>ifc)Sub=00 Prot=00 MxPS=9 #Cfgs=1 P:Vendor=0951 ProdID=1666 Rev=01.10 S:Manufacturer=Kingston S:Product=DataTraveler 3.0 S:SerialNumber=4CED0000A3AAAAA039970000 C:#Ifs=1 Cfg#=1 Atr=80 MxPwr=504mA I:If#=0 Alt=0 #EPs=2 Cls=08(stor.)Sub=06 Prot=50 Driver=usb-storage E:Ad=02(O)Atr=02(Bulk)MxPS=1024 Ivl=0ms E:Ad=81(I)Atr=02(Bulk)MxPS=1024 Ivl=0ms - William Deans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接