[질문] 현재 디렉토리의 위치 알아 내기.

hurryon의 이미지

씨로 작업하고 있습니다. 셸은 배쉬 환경입니다.

현재 디렉토리의 위치을 변수에 담고 싶어서입니다. 셸상에서
echo $PWD 을 실행하면 현재 디렉토리가 출력이 되기는 하지만
씨에서 이 현재 디렉토리을 변수에 담고 싶습니다.

#include <stdio.h>

int main(void)
{
    system("echo $PWD");

    return(0);
}

위와 같이 하니 단지 화면에 현재 디렉토리을 출력만 하더군요. 저 위치을
변수에 담아야 겠는데...으흠.

현재 작업 디렉토리의 위치을 알아야 하는 이유는

int main(int argc, char *argv[])
{
    FILE *in, *out;

...
...
...

sprintf(query_buffer, "load data infile \'%s\' into table saup fields terminated by '\t'", argv[2]);
    if(mysql_query(&mysql, query_buffer))
        db_error();

...
...
...

위와 같은 방법으로 쿼리을 날리려고 하는데 단지 argv[2]라고 입력을
하니 현재 디렉토리을 기준으로 인자값을 받지 않고
hurryon_db 의 디렉토리을 기준으로 인자값을 받더군요.

ㅡ.ㅡ;;

혹시 system이나 popen 등을 쓰지 않고도 현재 작업 디렉토리의 위치을
알고 있는 씨 환경변수(?)와 같은것이 존재 하는지요?

:-)

nainu의 이미지

man getcwd

은빛연어의 이미지

환경변수를 읽어들일때는 getenv라는 call도 있습니다.
man getenv

^^