main(int argc, char *argv[]) { }
원래 위에 처럼 하면 argv[0] 에 자신의 실행파일명이 들어가 잖아요. 근데, arguments 없이 main을 시작했을때 자신의 실행파일명을 구할 수 있는 방법이 없나요?
장마가 끝났다는 군요... ^^;
리눅스에서는 환경변수로 _ 이 방금 실행한 실행파일 이름이 세팅되는거
같은데요.. 정확히는 쉘에서 실행된 가장 마지막 인자가 저장되는거 같습니다.
echo $_
이렇게 하면 실행했던 최근의 인자가 출력됩니다.
#include <stdio.h> #include <stdlib.h> int main( int argc, char **argv ) { char *name = getenv( "_" ); printf( "_ = %s\n", name ); printf("argv[0] = %s\n", argv[0] ); return 0; }
위와 같이 해보니 리눅스에서는 잘 됩니다. 정석은 아닙니다.
윈도우즈 환경은 잘 몰라서.. ^^
진리를 나의 수준으로 끌어내리지 마라. 나를 진리의 수준으로 끌어올려라. - 배꼽 중에서
방법은 많지만 저의 경우는
자신의 PID를 getpid로 얻은후에 /proc/<pid>/commandline 이것을 읽어서 얻어봅니다.
답변 감사하구요.
그럼, /proc/<pid>/commandline 을 읽어 오는 구조체는 따로 없나요?
리눅스에서는...
리눅스에서는 환경변수로 _ 이 방금 실행한 실행파일 이름이 세팅되는거
같은데요.. 정확히는 쉘에서 실행된 가장 마지막 인자가 저장되는거 같습니다.
echo $_이렇게 하면 실행했던 최근의 인자가 출력됩니다.
#include <stdio.h> #include <stdlib.h> int main( int argc, char **argv ) { char *name = getenv( "_" ); printf( "_ = %s\n", name ); printf("argv[0] = %s\n", argv[0] ); return 0; }위와 같이 해보니 리눅스에서는 잘 됩니다. 정석은 아닙니다.
윈도우즈 환경은 잘 몰라서.. ^^
진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서
방법은 많지만 저의 경우는 자신의 PID를 getpid로 얻은후에
방법은 많지만 저의 경우는
자신의 PID를 getpid로 얻은후에
/proc/<pid>/commandline 이것을 읽어서 얻어봅니다.
답변 감사하구요.그럼, /proc/<pid>/comma
답변 감사하구요.
그럼, /proc/<pid>/commandline 을 읽어 오는 구조체는 따로 없나요?