std::filesystem::is_symlink

주어진 파일 상태나 경로가 심볼릭 링크에 해당하는지 확인하는 함수예요. C++17부터 있어요.

출처: cppreference

본문

<filesystem> 헤더에 정의돼 있어요.

bool is_symlink( std::filesystem::file_status s ) noexcept;  // (1) C++17
bool is_symlink( const std::filesystem::path& p );           // (2) C++17
bool is_symlink( const std::filesystem::path& p, std::error_code& ec ) noexcept; // (3) C++17

주어진 파일 상태나 경로가 POSIX S_IFLNK가 판정하는 것처럼 심볼릭 링크인지 검사해요.

    1. s.type() == file_type::symlink와 동등해요.
  • 2,3) 각각 is_symlink(symlink_status(p)) 또는 is_symlink(symlink_status(p, ec))와 동등해요.

매개변수

  • s — 확인할 file status
  • p — 검사할 경로
  • ec — 예외 없는 버전에서 오류 보고용 출력 매개변수

반환값

p가 가리키는 파일 또는 s가 나타내는 유형이 심볼릭 링크면 true, 아니면 false예요. 예외 없는 버전은 오류 시 false를 돌려줘요.

예외

noexcept로 표시되지 않은 오버로드는 메모리 할당이 실패하면 std::bad_alloc을 던질 수 있어요.

  • 2,3) OS API 호출이 실패하면 ec에 OS 오류 코드를 설정하고, 오류가 없다면 ec.clear()를 실행해요.

더 알아보기 (Learn more)

cppreference