操作系统如何区分文件?

操作系统如何区分文件?

我是编程和计算机方面的新手。所以我的问题是:当我双击例如 .exe 或 .jpg 文件时,操作系统如何知道如何处理该文件?我的意思是,文件扩展名是使操作系统处理文件的方式不同的唯一因素吗?

答案1

这个问题没有简单的答案。但简而言之:

  • 操作系统应用程序都可以使用文件内容或文件属性(例如名称)来确定如何处理文件。
  • Microsoft Windows 广泛使用文件后缀(例如.exe),但即便如此,“.exe”文件也有不同的二进制格式(对应于它们所需的资源)。对于普通最终用户来说,没有区别。有关“.exe”文件之间差异的进一步讨论,请参阅PE32+ 和 PE32 有什么区别?
  • Microsoft Windows 上的实际行为是可配置的,存储在系统注册表中。这称为“文件关联”,您可以通过文件资源管理器修改它们,详情请参阅更改打开文件类型的程序
  • 在类 Unix 系统上,应用程序(而不是操作系统) 更有可能使用文件命名约定(后缀)来决定如何处理文件。例如,大多数 Web 浏览器都使用 mailcap 和 MIME 类型。问题如何获取可以在 Linux 中打开特定文件扩展名的程序列表?只是对这个方面进行了粗略的了解。
  • 在类 Unix 系统中,操作系统主要查看文件内容例如,脚本和其他文本文件开头的所谓“hash-bang”行(参见因为我无法谷歌这个“#!”它在 URL 中到底有什么用) 以及二进制标头。file程序对于提供相关信息非常有用。关心二进制格式的应用程序(例如gzip和)也会查看文件内容。unzip

答案2

这取决于您谈论的是哪种操作系统。但是既然您提到了“.exe”,我假设您谈论的是某个版本的 Microsoft Windows。在 Windows 中(有一些例外),文件扩展名用于决定在 Windows 资源管理器中双击文件时要对文件执行的操作。

相关内容