文件系统是否影响应用程序的可移植性?

Does the File system affect applications portability ?

当我们在任何编程语言中使用文件处理 API 时,我假设会将二进制文件转换为文件 I/O 请求 OS 将为您服务。

从逻辑上讲,您的最终二进制可执行文件应该与主机 OS 使用的文件系统无关。

是这种情况还是文件系统真的会影响应用程序的可移植性?

通常情况下,答案是 "yes and no" - 让我详细说明一下:

不同的文件系统有不同的属性,例如最大文件大小、文件名区分大小写、共享文件名的文件系统对象数,很可能更多。

现在只要你只使用这些特征的通用子集,即文件大小低于 2G,没有文件名只是大小写不同(并且总是使用相同的大写),文件名中的小字符子集等。您 运行 遇到可移植性问题的可能性很小。

但是一旦你使用任何高级功能,你可能很容易运行陷入困境。 Windows 当遇到将 4G+1 字节写入 FAT 磁盘的请求时,在 ext3 上往往会做一些奇怪的事情 my.pdfmy.PDF 是不同的文件,可以很容易地位于同一目录中.