我一直在拼命寻找关于如何正确使用mount()函数的教程(他们非常擅长隐藏这些知识)。
我需要在单用户模式下将它用于MNT_UPDATE“/”(在本例中为/ dev / disk0s2),但是我找不到关于如何使用该函数的示例或教程。
PS。请不要“使用系统()” PPS。我知道/ sbin / mount存在是有原因的,我这样做是出于教育目的
答案 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;
};