Почему 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

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