현재 실행중인 C파일 위치를 찾아내는 코드

조회수 1946회

발생하는 문제 및 실행환경

코드 안에서 현재 실행중인 C파일 위치(절대경로)를 찾아내려면 어떻게 하나요?

argv[0]이 받아줬으면 좋겠는데 안해주는군요..

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    1. 유닉스 : /proc 사용

    1. readlink("/proc/self/exe", buf, bufsize) (Linux)
    2. readlink("/proc/curproc/file", buf, bufsize) (FreeBSD)
    3. readlink("/proc/self/path/a.out", buf, bufsize) (Solaris)

    2. 유닉스 : 1의 방법이 안되는 경우

    (setuid때문에 argv[0]를 쓰는 방법은 신뢰성에 문제가 있을 수도 있습니다.)

    1. argv[0]가 "/"로 시작하는 경우(absolute path)는 argv[0]이 path.
    2. argv[0]에 "/"가 포함되 있는 경우(relative path)는 cwd에 따라 다름

    3. 윈도우

    1. GetModuleFileName(NULL, buf, bufsize)

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.