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

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

Patricia Arquette
풀어 주다: 2025-01-04 00:54:39
원래의
1005명이 탐색했습니다.

How Can I Get a C/C   Program's Execution Directory Cross-Platform?

C/C에서 프로그램 실행 디렉터리 얻기

문제:

프로그램이 있는 디렉터리의 전체 경로 결정 실행은 많은 프로그래밍 시나리오에서 기본적인 작업입니다. 그러나 다양한 플랫폼과 파일 시스템에서 이를 달성하는 것은 시스템별 구현으로 인해 어려울 수 있습니다. 플랫폼에 구애받지 않고 이 작업을 수행할 수 있는 간결하고 효율적인 방법을 제공할 수 있습니까?

해결책:

운영 체제에 따라 이를 검색하는 고유한 접근 방식이 있습니다. 정보:

Windows:

#include <windows.h>

int main() {
  char pBuf[256];
  size_t len = sizeof(pBuf);
  int bytes = GetModuleFileName(NULL, pBuf, len);
  return bytes ? bytes : -1;
}
로그인 후 복사

Linux:

#include <string.h>
#include <unistd.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] = '';
  return bytes;
}
로그인 후 복사

이러한 방법은 하위 수준 시스템 기능을 사용하여 운영 체제에서 직접 경로를 가져옵니다. 플랫폼에 구애받지 않는 기능.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿