используя функцию mount (2) в C - PullRequest
3 голосов
/ 13 августа 2010

Я отчаянно искал учебник о том, как правильно использовать функцию mount () (они очень хорошо умеют скрывать эти знания).

Мне нужно использовать его для MNT_UPDATE "/" (в данном случае / dev / disk0s2) в однопользовательском режиме, но я не могу найти пример или руководство по использованию функции.

пс. Пожалуйста, не используйте систему () имп. Я знаю, что / sbin / mount существует по причине, я делаю это для образовательных целей

1 Ответ

2 голосов
/ 13 августа 2010

Как вы, вероятно, уже прочитали на странице руководства, вы используете это так:

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;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...