如何发现一个U盘是只读模式?(How to discover that a pendrive is

2019-09-22 14:12发布

我的问题是:我在C语言的软件++在嵌入式Linux系统中运行,该软件有一个特点,一些数据导出至U盘,现在来我的陷阱,一些用户想在一个关键的变化使用旧的随身碟读/写和只读模式之间。 现在,我需要知道如何检查设备是否处于只读模式展示一些反馈在我的应用程序的用户。 是否有一个系统调用之前检查只读状态安装的设备?

Answer 1:

处理这种情况通常的方法是尝试打开用于写入的文件,然后检查是否errno == EACCES

但是,如果你必须预先检查,这是

int on_readonly_fs(char const *path)
{
    struct statvfs fsinfo;

    while (statvfs(path, &fsinfo)) == -1)
        if (errno != EINTR)
            return -1;
    return fsinfo.f_flag & ST_RDONLY;
}

但是,这只是安装设备的作品。



文章来源: How to discover that a pendrive is in read-only mode?