...
Code Block | ||||
---|---|---|---|---|
| ||||
#include <stdio.h> int main(void) { FILE my_stdout = *stdout; if (fputs("Hello, World!\n", &my_stdout) == EOF) { /* Handle error */ } return 0; } |
This When compiled under Microsoft Visual Studio 2013 and run on Windows, this noncompliant example raises results in an "access violation" exception at runtime when compiled under Microsoft Visual Studio 2013 and run under Windows.
Compliant Solution
In this compliant solution, a copy of the stdout
pointer to the FILE
object is used in the call to fputs()
:
...
Related Guidelines
CERT C++ Secure Coding Standard | VOID FIO38-CPP. Do not use a copy of a FILE object for input and output |
ISO/IEC TS 17961:2013 | Copying a FILE object [filecpy] |
...