Почему STD :: FileSystem :: Absolute Resolve. и .. в Windows, но не на платформах POSIX?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему STD :: FileSystem :: Absolute Resolve. и .. в Windows, но не на платформах POSIX?

Сообщение Anonymous »

Я использую C ++ 17 STD :: FileSystem :: Absolute , чтобы преобразовать относительные пути в абсолютные. Я заметил, что в Windows (MSVC) эта функция, по -видимому, разрешается. и .. компоненты в пути, но на Linux (gcc/libstdc ++) эти компоненты остаются в результате.
Например, если мой текущий каталог/home/user (или c: \ пользователи

Код: Выделить всё

std::filesystem::path rel = "foo/./bar/child/..";
auto abs = std::filesystem::absolute(rel);
В Windows я получаю: c: \ users \ foo \ bar
on linux, я получаю: /home/user/foo/./bar/child/..../code>>>

Подробнее здесь: https://stackoverflow.com/questions/795 ... t-on-posix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»