>

리눅스에서 심볼릭 링크 인 파일의 경로가 있다면 프로그램이 가리키는 파일의 경로를 프로그래밍 방식으로 (C 또는 C ++로) 어떻게 결정합니까?

  • 답변 # 1

    와이즈 비즈  함수. readlink 를 . 이 함수는 Posix API의 일부이므로 거의 모든 Unix에서 작동합니다.

    경로가 man 2 readlink 로 시작하는 경우 , 그런 다음 절대 심볼릭 링크를 참조하면 파일이 참조하는 파일의 전체 절대 경로가 있습니다 (다른 심볼릭 링크 일 수 있으며 프로세스를 다시 반복해야 함).

    경로가 ' '/' 로 시작하지 않는 경우 ', 그러면 상대 링크이며 symlink가있는 디렉토리를 기준으로 해석됩니다. 실제 파일 이름을 알아 내기 위해 경로를 적절하게 결합하는 것은 사용자의 책임입니다.

    물론, 심볼릭 링크는 실제 경로가 아닌 정보를 저장하는 데 사용되기도합니다. 때때로 프로그램은 잠금 목적으로 PID 또는 기타 그러한 정보를 저장합니다. 심볼릭 링크를 만드는 호출은 NFS 마운트 파일 시스템에서 수행 할 수있는보다 안정적인 원자 적 작업 중 하나입니다.

    또한 Fedora 시스템에서 / 를 수행하면  심볼릭 링크, 다양한 환경에서의 동작 및이를 조작하거나 영향을받는 기능에 대한 자세한 설명을 얻을 수 있습니다.

  • 답변 # 2

    POSIX 또는 BSD 시스템에서 man 7 symlink 사용

    readlink()

  • 이전 C #에서 COM Interop, RPC 서버를 사용할 수 없음
  • 다음 스프링 데이터 mongodb mongotemplate을 사용하여 임베디드 문서를 삽입하는 방법