2009-11-20 6 views

답변

3

마지막 /를 검색하기 만하면됩니다. 그것은 당신의 플랫폼에서 사용할 수 있다면

const char *exename = strrchr(argv[0], '/'); 
if (exename) 
    // skip past the last/
    ++exename; 
else 
    exename = argv[0]; 
3

0 지금까지 내가 아는 한, (리눅스에 적어도) 그냥 * 숯불에서 직접 실행 파일 이름을 추출해야합니다.

가장 쉬운 방법은 "libgen.h"를 포함하여 얻을 수있는 basename(argv[0])을 사용하는 것입니다.

+2

Er에서 컴파일 만하려는 경우에만 표준 C 라이브러리의 basename()과 같은 의미입니까? ;) – SimonJ

+0

아 맞아. 나는 libgen.h가 표준이라는 사실을 잊어 버렸다. – perimosocordiae

+0

표준 C가 아닙니다. POSIX에 있습니다. –

0

그냥 경로 문자열의 마지막 부분을 사용하십시오. strrchr (마지막 경로 구분 기호 얻기) 및 예 : strcpy 또는 그와 유사한 부분은 마지막 경로 구분 기호에서 끝까지 복사합니다.

0

OS가 프로그램 이름을 설정하면 getprogname()을 사용할 수 있습니다.

관련 문제