In the 64–bit environment, the stdio facility has been extended to allow more than 256 streams to be open simultaneously. The 32–bit stdio facility continues to have a 256 streams limit.
64-bit applications should not rely on having access to the members of the FILE data structure. Attempts to access private implementation-specific structure members directly can result in compilation errors. Existing 32-bit applications are unaffected by this change, but any direct usage of these structure members should be removed from all code.
The FILE structure has a long history, and a few applications have looked inside the structure to glean additional information about the state of the stream. Because the 64–bit version of the structure is now opaque, a new family of routines has been added to both 32-bit libc and 64-bit libc to allow the same state to be examined without depending on implementation internals. See, for example, __fbufsize(3C).