홈>
리눅스에서 심볼릭 링크 인 파일의 경로가 있다면 프로그램이 가리키는 파일의 경로를 프로그래밍 방식으로 (C 또는 C ++로) 어떻게 결정합니까?
- 답변 # 1
- 답변 # 2
POSIX 또는 BSD 시스템에서
man 7 symlink
사용readlink()
관련 자료
관련 질문
- java : 오류 ld 1로 인해 CodeBlock의 프로젝트를 빌드할 수 없습니다.
- c++ : Autotools 라이브러리용 libfuzzer 생성
- c++ : 와이드 문자열 리터럴과 문자열 매크로 결합
- C에서 Linux의 프로세스 PID를 얻는 방법
- c++ : 처음부터 연결 목록 구현?
- c++ : 바이트를 반전할 때 불필요한 작업이나 작업이 있는 이유는 무엇입니까?
- c++ : 대상 'all'에 대한 CMake 레시피가 실패했습니다. 라이브러리 오류
- c : makefile에서 동적으로 링크된 라이브러리 컴파일
- c++ : C/CPP에서 반복될 때까지 난수 생성
- c++ : c의 노드를 가리키는 포인터 배열에 대한 포인터를 만드는 방법은 무엇입니까?
와이즈 비즈 함수.
readlink
를 . 이 함수는 Posix API의 일부이므로 거의 모든 Unix에서 작동합니다.경로가
man 2 readlink
로 시작하는 경우 , 그런 다음 절대 심볼릭 링크를 참조하면 파일이 참조하는 파일의 전체 절대 경로가 있습니다 (다른 심볼릭 링크 일 수 있으며 프로세스를 다시 반복해야 함).경로가 '
물론, 심볼릭 링크는 실제 경로가 아닌 정보를 저장하는 데 사용되기도합니다. 때때로 프로그램은 잠금 목적으로 PID 또는 기타 그러한 정보를 저장합니다. 심볼릭 링크를 만드는 호출은 NFS 마운트 파일 시스템에서 수행 할 수있는보다 안정적인 원자 적 작업 중 하나입니다.'/'
로 시작하지 않는 경우 ', 그러면 상대 링크이며 symlink가있는 디렉토리를 기준으로 해석됩니다. 실제 파일 이름을 알아 내기 위해 경로를 적절하게 결합하는 것은 사용자의 책임입니다.또한 Fedora 시스템에서
/
를 수행하면 심볼릭 링크, 다양한 환경에서의 동작 및이를 조작하거나 영향을받는 기능에 대한 자세한 설명을 얻을 수 있습니다.