Section: 31.10 [file.streams] Status: CD1 Submitter: Martin Sebor Opened: 2003-09-18 Last modified: 2017-06-15
Priority: Not Prioritized
View all other issues in [file.streams].
View all issues with CD1 status.
Discussion:
7.19.1, p2, of C99 requires that the FILE type only be declared in <stdio.h>. None of the (implementation-defined) members of the struct is mentioned anywhere for obvious reasons.
C++ says in 27.8.1, p2 that FILE is a type that's defined in <cstdio>. Is it really the intent that FILE be a complete type or is an implementation allowed to just declare it without providing a full definition?
Proposed resolution:
In the first sentence of [fstreams] paragraph 2, change "defined" to "declared".
Rationale:
We don't want to impose any restrictions beyond what the C standard already says. We don't want to make anything implementation defined, because that imposes new requirements in implementations.