Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

con.txt and C++

#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?

like image 313
mr. Vachovsky Avatar asked Dec 18 '10 08:12

mr. Vachovsky


1 Answers

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.

like image 147
Frédéric Hamidi Avatar answered Oct 27 '22 08:10

Frédéric Hamidi