Question

#include <fstream>

int _tmain(int argc, _TCHAR* argv[])
{
   std::ofstream F("con.txt", std::ios::out);

   F << "some text in con.txt";

   F.close();

   return 0;
}

output:

some text in con.txt

If i replace "con.txt" with "something.txt" then something.txt will contains the string "some text in something.txt."

I think that the file con.txt bind with a console file... What is real happened in the first case?

Was it helpful?

Solution

CON is a reserved device name on Windows platforms. It shouldn't be used as a file name, even with an extension.

From the documentation:

Do not use the following reserved device names for the name of a file: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. Also avoid these names followed immediately by an extension; for example, NUL.txt is not recommended.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top