在C中使用mount(2)函数

时间:2010-08-13 15:44:39

标签: c macos unix

我一直在拼命寻找关于如何正确使用mount()函数的教程(他们非常擅长隐藏这些知识)。

我需要在单用户模式下将它用于MNT_UPDATE“/”(在本例中为/ dev / disk0s2),但是我找不到关于如何使用该函数的示例或教程。

PS。请不要“使用系统()” PPS。我知道/ sbin / mount存在是有原因的,我这样做是出于教育目的

1 个答案:

答案 0 :(得分:2)

正如您可能已在手册页中读到的那样,您可以像这样使用它:

int ret = mount("hfs", "/", MNT_UPDATE, some_data);

诀窍在于“数据”。它是一个特定于文件系统的结构,可以通过在系统头文件中查找文件系统名称来找到它。例如,对于HFS,它位于/usr/include/hfs/hfs_mount.h

struct hfs_mount_args {
    char     *fspec; /* <--- This is the device to mount */
    uid_t     hfs_uid;
    gid_t     hfs_gid;
    mode_t    hfs_mask;
    u_int32_t hfs_encoding;
    struct    timezone hfs_timezone;
    int       flags;
    int       journal_tbuffer_size;
    int       journal_flags;
    int       journal_disable;
};