'\x1A' 在 Windows 中有何特殊之处?

How is '\x1A' special in Windows?

阅读一些参考资料1, 2,我了解到fopen(3)中第二个参数中的修饰符b在[=中没有作用29=] 系统,同时它防止在 Windows 中对 \n\x1A 进行特殊处理(见下文)。

我很清楚 \n (LF) 在 Windows 中的特殊之处,因为文本文件使用 CRLF 换行(即 printf("\n") 实际上打印 \r\n),但是\x1A (SUB) 有什么特别之处?

fopen("D:\foo.txt", "rb");
                       ^

\x1A 是 Ctrl+Z,它曾经在 MS-DOS 中用作文件结束标记(甚至可以追溯到 CP/M)。

Microsoft documentation没有提到"b"模式下的Ctrl+Z(只在"t"模式下),所以这可能是货物崇拜编程。我现在手边没有 Windows 盒子,所以我无法轻松查看。