Page 1 of 1

<cstdio> explicitly banned but not <fstream> or <ostream>

Posted: Wed Jul 07, 2010 3:17 pm
Rule 27-0-1 specifically bans the use of library <cstdio> for access to the external file system but not <fstream>. Do we imply from this that <fstream> is a safer alternative, or is it considered inherently unsafe, in any case, for application code to access the file system at run-time.

This question is asked in the context that the real-time software for our vehicle-based military project may be required to read configuration parameters from file at start-up, and log telemetry data during run-time.

It is also noted that std::cout (<ostream>) is used in the example code for Rule 3.4.1., whereas printf would be banned under Rule 27-0-1.

Re: <cstdio> explicitly banned but not <fstream> or <ostream

Posted: Fri Jan 21, 2011 2:02 pm
by sthrjo
As I understand <iostream> may be used as long as dynamic heap memory allocation is avoided (18-4-1), and the library is reliable, see "3.5 Library Issues".

Re: <cstdio> explicitly banned but not <fstream> or <ostream>

Posted: Tue Oct 11, 2016 11:18 am
by misra cpp
We agree with the post of sthrjo Fri Jan 21, 2011