
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