使用syscall mount()以只读方式重新安装ext4文件系统

时间:2015-04-11 17:06:46

标签: c kernel mount system-calls

我想用硬编码选项编写一个简单的C程序,除了将根文件系统重新安装到read-only

之外别无其他

我看到,mount()系统调用采用以下参数:

mount(const char *spec, const char *node, const char *type, int flags, void *data)

我有以下C代码:

#include <stdio.h>
#include <errno.h>
#include <sys/mount.h>

int main(int argc, char *argv[]) {
    return mount ("/dev/sda1", "/", "ext4", "MS_RDONLY", NULL);
}

我知道,我应该使用MS_RDONLY类型代替int。但是,我在哪里可以找到与MS_RDONLY相对应的值(或者我需要使用哪个选项)?

2 个答案:

答案 0 :(得分:3)

MS_RDONLY应该在mount.h中定义,您已经包含在代码中。将"MS_RDONLY"更改为MS_RDONLY应该可以解决问题。

答案 1 :(得分:0)

#define中的sys/mount.h&#39; d。{/ p>

mount ("/dev/sda1", "/", "ext4", MS_RDONLY, NULL);