Я только что столкнулся со следующим вопросом в среде программирования Unix , классической книге Кернигана и Пайка о Unix (ниже я нашел текст на стр. 79 издания 1984 года, ISBN: 0-13-937699-2):
Упражнение 3-6. (Вопрос с подвохом) Как вы вводите / в имя файла (т. Е. /, Который не разделяет компоненты пути?
Я много лет работал с Linux, как конечный пользователь, так и программист, но я не могу ответить на этот вопрос. Там нет никакого способа поставить косую черту в именах файлов, это абсолютно запрещено ядром. Вы можете исправить вашу файловую систему с помощью доступа к блочному устройству или использовать похожие символы из Юникода, но это не решения.
Я понимаю, что Linux ≠ Unix, но должен применяться тот же принцип, поскольку система должна иметь возможность однозначно извлекать иерархию каталогов из путей.
Кто-нибудь знает, о чем думали Керниган и Пайк, задавая эти вопросы? Какой был предполагаемый ответ? Что именно «трюк»? Или, может быть, оригинальная система Unix просто позволила избежать этой косой черты?
UPD:
Я связался с Брайаном Керниганом по этому вопросу, и он ответил:
Ответ (или был) «Вы не можете».
Следовательно, Тимоти Мартин был прав и получает зеленую галочку.
a
и заставить вашу систему думать, что файловая система находится в локали EBCDIC? ASCII a
равен 0x61, что соответствует /
EBCDIC (кодовая страница 37)