使用系统调用 mount() 以只读方式重新挂载 ext4 文件系统

using the syscall mount() to remount ext4 filesystem read-only

我想写一个带有硬编码选项的简单 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);
}

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

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

#definesys/mount.h

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