>백엔드 개발 >C++ >크로스 플랫폼 C/C 프로그램에서 실행 디렉터리를 어떻게 얻을 수 있나요?

크로스 플랫폼 C/C 프로그램에서 실행 디렉터리를 어떻게 얻을 수 있나요?

DDD
DDD원래의
2024-12-21 02:48:12721검색

How Can I Get the Execution Directory in a Cross-Platform C/C   Program?

크로스 플랫폼 환경에서 실행 디렉터리를 결정하는 방법

프로그래밍 영역에서 프로그램의 실행 디렉터리를 결정하는 것은 중요하지만 플랫폼 및 파일 시스템에 종속적인 작업입니다. C 및 C 개발자는 이러한 종속성을 초월하는 보편적인 솔루션을 찾는 경우가 많습니다.

완전히 플랫폼에 구애받지 않는 방법은 없지만 다음은 Windows 및 C에 대한 맞춤형 솔루션입니다. Linux:

Windows:

#include <windows.h>

int main() {
    char pBuf[256];
    size_t len = sizeof(pBuf);
    int bytes = GetModuleFileName(NULL, pBuf, len);
    printf("Execution directory: %s", pBuf);
    return 0;
}

Linux:

#include <unistd.h>
#include <string.h>

int main() {
    char pBuf[256];
    size_t len = sizeof(pBuf);
    int bytes = MIN(readlink("/proc/self/exe", pBuf, len), len - 1);
    if (bytes >= 0)
        pBuf[bytes] = '';
    printf("Execution directory: %s", pBuf);
    return 0;
}

위 내용은 크로스 플랫폼 C/C 프로그램에서 실행 디렉터리를 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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