std::filesystem::create_hard_link
std::filesystem::create_hard_link (하드 링크 생성)
target을 가리키는 하드 링크 link를 만드는 함수예요. C++17부터 있어요.
출처: cppreference
본문
<filesystem> 헤더에 정의돼 있어요.
void create_hard_link( const std::filesystem::path& target,
const std::filesystem::path& link ); // (1) C++17
void create_hard_link( const std::filesystem::path& target,
const std::filesystem::path& link,
std::error_code& ec ) noexcept; // (2) C++17
POSIX link()처럼 target을 목표로 하는 하드 링크 link를 만들어요. 경로 이름 target은 존재해야 해요. 일단 만들어지면 link와 target은 같은 파일을 가리키는 두 개의 논리적 이름이 돼요(동등해요). 원래 이름 target이 삭제되어도 파일은 계속 존재하며 link로 접근할 수 있어요.
매개변수
target— 링크할 파일·디렉터리의 경로link— 새 하드 링크의 경로ec— 예외 없는 버전에서 오류 보고용 출력 매개변수
반환값
(없음)
예외
noexcept로 표시되지 않은 오버로드는 메모리 할당이 실패하면 std::bad_alloc을 던질 수 있어요.
-
- OS API 오류가 있으면
target을 첫 경로 인자,link를 두 번째 경로 인자, OS 오류 코드를 오류 코드 인자로 삼아std::filesystem::filesystem_error를 던져요.
- OS API 오류가 있으면
-
- OS API 호출이 실패하면
ec에 OS 오류 코드를 설정하고, 오류가 없다면ec.clear()를 실행해요.
- OS API 호출이 실패하면
참고
일부 운영체제는 하드 링크를 전혀 지원하지 않거나 일반 파일에 대해서만 지원해요. 일부 파일시스템은 운영체제와 무관하게 하드 링크를 지원하지 않아요. 메모리 카드와 플래시 드라이브에 쓰이는 FAT 파일시스템이 그 예예요.