다음을 통해 공유


CreateSymbolicLinkW 함수(winbase.h)

기호화 된 링크를 만듭니다.

이 작업을 트랜잭션된 작업으로 수행하려면 CreateSymbolicLinkTransacted 함수를 사용합니다.

구문

BOOLEAN CreateSymbolicLinkW(
  [in] LPCWSTR lpSymlinkFileName,
  [in] LPCWSTR lpTargetFileName,
  [in] DWORD   dwFlags
);

매개 변수

[in] lpSymlinkFileName

만들 기호 링크입니다.

이 매개 변수에는 경로가 포함될 수 있습니다.

기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 와이드 문자 32,767자로 확장하려면 경로 앞에 "\\?\"를 추가합니다. 자세한 내용은 파일 이름 지정, 경로 및 네임스페이스를 참조하세요.

Windows 10 버전 1607부터 "\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

[in] lpTargetFileName

만들 심볼 링크의 대상 이름입니다.

lpTargetFileName에 연결된 디바이스 이름이 있는 경우 링크는 절대 링크로 처리됩니다. 그렇지 않으면 링크가 상대 링크로 처리됩니다.

이 매개 변수에는 경로가 포함될 수 있습니다.

기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 와이드 문자 32,767자로 확장하려면 경로 앞에 "\\?\"를 추가합니다. 자세한 내용은 파일 이름 지정, 경로 및 네임스페이스를 참조하세요.

Windows 10 버전 1607부터 "\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

[in] dwFlags

링크 대상 lpTargetFileName이 디렉터리인지 여부를 나타냅니다.

의미
0x0
링크 대상은 파일입니다.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
링크 대상은 디렉터리입니다.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
프로세스가 상승되지 않은 경우 기호 링크를 만들 수 있도록 이 플래그를 지정합니다. 이 옵션이 작동하려면 먼저 머신에서 개발자 모드를 사용하도록 설정해야 합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

바로 가가 링크는 절대 링크이거나 상대 링크일 수 있습니다. 절대 링크는 경로 이름의 각 부분을 지정하는 링크이고, 상대 링크는 지정된 경로에서 상대 링크 지정자가 있는 위치를 기준으로 결정됩니다. 상대 링크는 다음 규칙을 사용하여 지정됩니다.

  • 점(. 및 ..) 규칙 - 예를 들어 “..\”는 부모 디렉터리를 기준으로 경로를 확인합니다.
  • 슬래시가 없는 이름(\\)(예: "tmp")은 현재 디렉터리를 기준으로 경로를 확인합니다.
  • 루트 상대(예: "\Windows\System32")는 "현재 드라이브:\Windows\System32"로 확인됩니다.
  • 현재 작업 디렉터리-상대-예를 들어 현재 작업 디렉터리가 C:\Windows\System32인 경우 "C:File.txt"은 "C:\Windows\System32\File.txt"로 확인됩니다.
    참고 현재 작업 디렉터리 상대 링크를 지정하면 사용자 및 스레드에 따라 현재 작업 디렉터리가 처리되는 방식으로 인해 절대 링크로 만들어집니다.
     
기호 링크를 제거하려면 사용되는 기호 링크 유형에 따라 파일을 삭제하거나( DeleteFile 또는 유사한 API 사용) 디렉터리( RemoveDirectory 또는 유사한 API 사용)를 제거합니다.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) No
ReFS(Resilient File System) Yes
 

CsvFs는 소프트 링크 또는 기타 재분석 지점을 지원하지 않습니다.

참고

winbase.h 헤더는 CREATESymbolicLink를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

CreateSymbolicLinkTransacted

파일 관리 함수

바로 가기 링크