Как включить поддержку linux двойной обратной косой черты "\\" в качестве разделителя пути - PullRequest
0 голосов
/ 16 марта 2012

Предположим, у нас есть файл /root/file.ini.

В оболочке Ubuntu мы можем показать содержимое этой командой, меньше /root\\file.ini

Однако в оболочке debian приведенная ниже команда сообщит, что файл не существует.

Кто-нибудь знает, как заставить linux поддерживать "\\" в качестве разделителя пути? Мне нужно решить это, потому что у нас есть программное обеспечение, которое пытается получить доступ к файлу, используя «\\». Он отлично работает в Ubuntu, но не в Debian.

Спасибо

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Linux не может поддерживать \ в качестве разделителя пути (хотя, возможно, он сможет внести существенные изменения в ядро).Это потому, что \ является допустимым символом имени файла.Фактически единственными символами, которые не допускаются в качестве части имени файла, являются / и \0 (нулевой символ).

Если это работает в Ubuntu, то я бы проверил наличиефайл с именем root\file.ini в /

Я полагаю, вам, вероятно, будет проще сделать вашу программную платформу независимой.

Я нашел это сообщение на форуме , в котором говорится, что / является независимым от платформы разделителем пути в ANSI C, и все файловые операции автоматически преобразуют / в фактический разделитель пути, используемый в хост-ОС..

1 голос
/ 16 марта 2012

пробовали ли вы "\\\\" (4 обратных слеша) первый и третий для выхода, а второй и последний для управления ими всеми?

...