argv[0] 에서 파일 경로와 파일명 분리하기

jinserk의 이미지

현재 실행 파일의 경로를 알아내기 위해서 main 의 argv[0] 에서 파일명을 뺀 파일 경로를 얻고 싶습니다.
어떻게 하면 될지 전혀 감이 안오네요.

msvc 와 mingw, linux 에서 다 같은 결과를 얻으려면 어떻게 해야 할까요?

clique의 이미지

jinserk의 이미지

boost 의 regex 를 써야 하나 하고 끙끙대고 있었습니다.
감사합니다. ^^

Leo.

jinserk의 이미지

MSVC 에선 libgen.h 가 없군요.

MSVC 에서는 어떻게 해야 하나요? -_-;

Leo.

ironiris의 이미지

#include 〈stdio.h>
#include 〈strings.h>
 
int main(int argc, char **argv){
    int i=0;
    printf("실행파일 전체경로:%s\n",argv[0]);
    for(i=strlen(argv[0]);i>=0;i--){
#ifdef __WIN32__
        if(argv[0][i]=='\\'){
#else
        if(argv[0][i]=='/'){
#endif
            break;
        }
    }
    if(i!=-1){
        argv[0][i]=0;
        printf("경로:%s\n",argv[0]);
    }
    printf("실행파일명:%s\n",argv[0]+i+1);
}