>백엔드 개발 >C++ >크로스 플랫폼에서 실행 파일 경로를 얻으려면 어떻게 해야 합니까?

크로스 플랫폼에서 실행 파일 경로를 얻으려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-22 18:18:17778검색

How Can I Get the Executable Path Cross-Platform?

실행 가능한 크로스 플랫폼의 경로 가져오기

프로그래밍 영역에서 현재 실행 중인 실행 파일의 경로를 결정하는 것은 지속적으로 유지됩니다. 도전. 이 문서에서는 플랫폼 독립적인 방식으로 이 경로를 얻는 복잡한 세부 사항을 자세히 살펴봅니다.

플랫폼에 구애받지 않는 접근 방식

처음에는 Boost::filesystem이 다음과 같다고 가정할 수도 있습니다. :initial_path는 크로스 플랫폼 요구 사항에 대한 솔루션을 제공합니다. 그러나 발견된 바와 같이 이는 애플리케이션이 시작된 경로를 반환함으로써 이식성 측면만을 해결합니다. 이는 실행 파일의 경로를 제공하기에는 부족합니다.

플랫폼별 솔루션

확실한 크로스 플랫폼 솔루션이 부족함에도 불구하고 플랫폼별 접근 방식 존재:

Linux

  • /proc/self/exe를 std::filesystem::canonical로 전달하거나 readlink.

Windows

  • GetModuleFileName에 모듈 핸들로 NULL을 전달합니다.

위 내용은 크로스 플랫폼에서 실행 파일 경로를 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.