개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.24 00:41

getcwd 함수를 사용하여 현재 디렉토리 경로 얻기

목록
  • DP전문가 1일 전 2025.07.24 00:41
  • 14
    1
저는 현재 디렉토리 경로를 얻기 위해 getcwd 함수를 사용하려고 합니다. 하지만 getcwd 함수의 반환 타입이 char* 인 것이 아닌 const char* 인 것으로 알고 있습니다. 이 차이점이 있으면 어떤 영향을 미치는지 궁금합니다.

또한, getcwd 함수를 사용하여 현재 디렉토리 경로를 얻은 후에, 이 경로를 사용하여 다른 파일을 열려고 합니다. 이때, 파일을 열기 전에 경로를 char* 타입으로 변환해야 하는지, const char* 타입으로 변환해야 하는지 궁금합니다.

위에 제시된 내용에 대해 자세한 설명을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    getcwd 함수의 반환 타입이 const char* 인 이유는, 함수가 반환한 문자열을 변경할 수 없기 때문입니다. 문자열을 변경하려면 const 키워드가 붙지 않은 char* 타입의 포인터가 필요합니다.

    getcwd 함수를 사용하여 현재 디렉토리 경로를 얻은 후, 이 경로를 사용하여 다른 파일을 열려고 할 때, 경로를 char* 타입으로 변환해야 합니다. 이유는 fopen 함수와 같은 파일 열기 함수가 char* 타입의 경로를 인수로 받기 때문입니다.

    따라서, 다음 코드와 같이 getcwd 함수의 반환 값을 char* 타입으로 변환한 후, fopen 함수에 인수로 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        char current_dir[1024];
    
        if (getcwd(current_dir, sizeof(current_dir)) == NULL) {
    
            printf("getcwd 함수 호출 실패n");
    
            return -1;
    
        }
    
    
    
        FILE* file = fopen(current_dir, "r");
    
        if (file == NULL) {
    
            printf("파일 열기 실패n");
    
            return -1;
    
        }
    
    
    
        fclose(file);
    
        return 0;
    
    }
    
    


    위 코드에서는 getcwd 함수의 반환 값을 char* 타입의 current_dir 변수에 저장한 후, fopen 함수에 인수로 사용합니다.

    2025-07-24 00:42

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,695건 / 1 페이지

검색

게시물 검색