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 을 읽어 오는 구조체는 따로 없나요?
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
리눅스에서는...
리눅스에서는 환경변수로 _ 이 방금 실행한 실행파일 이름이 세팅되는거
같은데요.. 정확히는 쉘에서 실행된 가장 마지막 인자가 저장되는거 같습니다.
echo $_
이렇게 하면 실행했던 최근의 인자가 출력됩니다.
위와 같이 해보니 리눅스에서는 잘 됩니다. 정석은 아닙니다.
윈도우즈 환경은 잘 몰라서.. ^^
진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서
방법은 많지만 저의 경우는 자신의 PID를 getpid로 얻은후에
방법은 많지만 저의 경우는
자신의 PID를 getpid로 얻은후에
/proc/<pid>/commandline 이것을 읽어서 얻어봅니다.
답변 감사하구요.그럼, /proc/<pid>/comma
답변 감사하구요.
그럼, /proc/<pid>/commandline 을 읽어 오는 구조체는 따로 없나요?
댓글 달기