Windows и Con
В Windows нельзя создать файл или папку под названием “Con”
Проверено - нельзя.
Вариант почему - у Билла Гейтса было в детстве такое прозвище. С английского Con - подстава, словарь слэнга Urban Dictionary приводит множество других вариантов, но я не смог подобрать чего-либо вразумительного.
UPD: (все проще оказалось)
С DOS’овских времен остался пережиток прошлого - запрет на имена папок PRN, AUX, NUL, COM1, COM2 и CON. Таким образом когда-то можно были обратиться непосредственно к устройству.
Спасибо pmaster‘у
Проспамлюсь =)
http://blog.pmaster.net/post.php?id=45
http://blog.pmaster.net/post.php?id=46
Вот оказывается в чем затык
Нет нет и нет
Дело не в вещах аля COM1, COM2 …
Если попытаться содать такие папки то пишется что папка уже существует
А на CON выдает что кривое имя папки
#include
#include
int _tmain(int argc, _TCHAR* argv[])
{
_wmkdir ( L”\\\\?\\D:\\con” ); // Создать папку con (также, как и aux, nul, prn и т.д.)
_wrmdir( L”\\\\?\\D:\\con” ); // Удалить папку con
getch ( );
return 0;
}
Давно-давно, во времена DOS’а, операционная система предоставляла прямой доступ к устройствам по механизму доступа к файлам. Для этого надо было гарантировать уникальность некоторых имен файлов, поэтому некоторые имена файлов были зарезервированы - файлы с зарезервированными именам нельзя было создать, а запись в подобные файлы интерпретирвоалась как запись в устройство: например команда COPY TEST.TXT LPT1 копировала файл TEST.TXT в порт LPT1 и если у вас к этому порту присоединен принтер, то файл, соответственно, выдавался н печать. Подозреваю, что в Windows этот механизм плавно перетекал из версии в версию для обеспечения какой-то обратной совместимости, но сейчас механизм этот (как мне кажется) не работает и уж точно не востребован.
Навскидку, могу расширить список: CON, консоль, LPT(N), порты принтера, N є [0,10), COM(N), модемные порты, N є [0,10), PRN (принтер), NUL (пустое устройство), AUX (асинхронный интерфейс).
По сути своей, источник этого явления такой же, как и невозможность использования двоеточия и обратного слэша в имени файлов.
Кстати, еще более ярко ассоциации работы с устройством как с файлом, выражены в *NIX системах.