在 64 位环境中,已经对 stdio 功能进行了扩展,允许同时打开 256 个以上的流。32 位 stdio 功能仍具有最多只能同时打开 256 个流这一限制。
64 位应用程序不应当依赖具有对 FILE 数据结构成员的访问权限。如果尝试直接访问特定于实现的专用结构成员,则可能会导致编译错误。现有的 32 位应用程序不会受到此更改的影响,但是,在任何代码中都不应当再直接使用这些结构成员。
FILE 结构有很长的历史,只有少数应用程序曾经查看过数据结构内部以收集有关流状态的其他信息。 由于 64 位版本的 FILE 结构现在是不透明的,因此,32 位 libc 和 64 位 libc 中均已添加了一系列新例程,以允许在不依赖内部实现的情况下检查同一个状态。 例如,请参见 __fbufsize(3C)。