boost::filesystem::path::lexically_normal()
상태의 문서 :boost :: filesystem :: path :: lexically_normal :이 잘못된 동작입니까?
반환 제거 중복 현재 디렉토리 (점), 상위 디렉토리 (점 점), 및 디렉토리 분리 요소
*this
.
참조 : http://www.boost.org/doc/libs/1_63_0/libs/filesystem/doc/reference.html.
다음 인쇄 ./test
내가 test
을 기대하는 곳 (부스트 1.63.0을 사용하여이) :
#include <boost/filesystem/path.hpp>
#include <iostream>
int main(void)
{
std::cout << boost::filesystem::path{"./test"}.lexically_normal().string() << "\n";
return 0;
}
은 그래서 첫 번째 점의 요소는 중복으로 간주되지 않습니다. 그러나, 부스트 파일 시스템을 사용할 때 test
과 ./test
모두 분명히 동일한 파일로 해석되기 때문에 이것은 나에게 모순이되는 것처럼 보입니다. 이 예상되는 동작입니까?
여기서'test '는 상대 경로라고 암묵적으로 가정합니다. 이것은 휴대용 코드에서 위험한 가정입니다. './test'는 분명히 상대적입니다. – MSalters
유닉스 감성입니다. 끝나는 곳이 거의 없기 때문에 'perms'를 뿌리 내리는 0777은 결코 유닉스가 아닌 OS에 잘 포팅되지 않습니다. –
@MSalters, 보편적으로, OpenVMS가 떠오른다. –