안녕하세요, 나는 실행 파일의 이름과 사용 문자열을 사용하려고하는데 이런 목적으로 argv[0]
을 사용하고 있지만 실행 파일 자체의 이름 대신 완전한 경로를 제공합니다.경로없이 실행 파일의 이름을 가질 수 있습니까?
실행 파일 이름 만 가져 오는 방법이 있습니까?
안녕하세요, 나는 실행 파일의 이름과 사용 문자열을 사용하려고하는데 이런 목적으로 argv[0]
을 사용하고 있지만 실행 파일 자체의 이름 대신 완전한 경로를 제공합니다.경로없이 실행 파일의 이름을 가질 수 있습니까?
실행 파일 이름 만 가져 오는 방법이 있습니까?
마지막 /를 검색하기 만하면됩니다. 그것은 당신의 플랫폼에서 사용할 수 있다면
const char *exename = strrchr(argv[0], '/');
if (exename)
// skip past the last/
++exename;
else
exename = argv[0];
핸들 인수와 함께 사용하여 GetModuleFileName http://msdn.microsoft.com/en-us/library/ms683197%28VS.85%29.aspx =
0 지금까지 내가 아는 한, (리눅스에 적어도) 그냥 * 숯불에서 직접 실행 파일 이름을 추출해야합니다.
가장 쉬운 방법은 "libgen.h"를 포함하여 얻을 수있는 basename(argv[0])
을 사용하는 것입니다.
Er에서 컴파일 만하려는 경우에만 표준 C 라이브러리의 basename()과 같은 의미입니까? ;) – SimonJ
아 맞아. 나는 libgen.h가 표준이라는 사실을 잊어 버렸다. – perimosocordiae
표준 C가 아닙니다. POSIX에 있습니다. –
그냥 경로 문자열의 마지막 부분을 사용하십시오. strrchr
(마지막 경로 구분 기호 얻기) 및 예 : strcpy
또는 그와 유사한 부분은 마지막 경로 구분 기호에서 끝까지 복사합니다.
는 기능 char *basename(char *path)
있다. basename documentation을 참조하십시오.
OS가 프로그램 이름을 설정하면 getprogname()
을 사용할 수 있습니다.
그가 Windows – tloach