Linux支持许多文件系统(例如: ext3、NTFS、FAT32等)。
下图显示了Linux如何允许进程访问文件:

因此,假设一个进程名为read()系统调用来读取文件,那么将访问VFS层,而VFS层将根据要读取的文件所在的分区的文件系统来决定要访问哪个文件系统驱动程序。
Linux提供了许多访问文件的系统调用(例如:read()、write()、rename()等)。
现在,read()、write()和rename()可以在Linux支持的所有文件系统上工作。
但是,有些特定的特性只存在于某些文件系统中,而在其他文件系统中则不存在。例如:在NTFS文件系统上,可以为文件设置Archive位,而这不能在ext3文件系统上完成。
现在我的问题是,Linux是否有系统调用来访问它所支持的文件系统的所有特性?例如: Linux是否有一个系统调用来为NTFS文件系统上的文件设置Archive位?
发布于 2019-03-13 20:52:07
Linux是否有系统调用来为NTFS文件系统上的文件设置Archive位?
对于这种特殊情况,ntfs-3g驱动程序通过扩展属性导出文件属性,请参阅我可以在Linux上的NTFS文件上设置“Archive”位吗?
(V)FAT文件系统具有类似的文件属性,但它使用ioctl()函数访问它们,参见ioctl_fat(2)。(ioctl()是一种多用途的系统调用,用于不需要真正的系统调用的各种设备特定的东西。)
现在我的问题是,Linux是否有系统调用来访问它所支持的文件系统的所有特性?
很难确定答案,但至少有一个相反的例子。ext4内部支持文件的“出生时间”时间戳(例如,一个真实的创建时间,不像在inode修改时更改的ctime )。但是,尽管ext4是“标准”文件系统,但很长一段时间以来,没有系统调用来访问出生时间。
现在应该得到支持,2017年4月,statx()系统呼叫将在Linux 4.11中加入。
相关信息:
https://unix.stackexchange.com/questions/506160
复制相似问题