
getcwd 함수의 매개변수 buf의 크기는 현재 작업 디렉토리의 길이보다 1만큼 더 큰 문자열을 저장할 수 있는 크기여야 합니다.
예를 들어, 현재 작업 디렉토리의 길이가 10이라면 buf의 크기는 11이여야 합니다.
buf의 크기를 지정하지 않으면, getcwd 함수는 버퍼 오버플로를 발생시키거나, 에러를 반환할 수 있습니다.
따라서, buf의 크기를 지정하기 전에, 현재 작업 디렉토리의 길이를 얻어야 합니다.
getcwd 함수의 반환 값은 NULL이 아니면 성공, NULL이면 실패를 나타내므로, 성공이면 buf의 크기를 지정하고, 실패이면 에러 메시지를 출력하는 코드를 작성하는 것이 좋습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
char buf[1024];
size_t len = 1024;
if (getcwd(buf, len) != NULL) {
printf("현재 작업 디렉토리: %sn", buf);
} else {
perror("getcwd");
}
return 0;
}
위 코드에서는 buf의 크기를 1024로 지정하고, getcwd 함수를 호출하여 현재 작업 디렉토리를 얻습니다.
만약 buf의 크기를 지정하지 않고, getcwd 함수를 호출하면, 버퍼 오버플로를 발생시키거나, 에러를 반환할 수 있습니다.
따라서, buf의 크기를 지정하기 전에, 현재 작업 디렉토리의 길이를 얻어야 합니다.
getcwd 함수의 반환 값은 NULL이 아니면 성공, NULL이면 실패를 나타내므로, 성공이면 buf의 크기를 지정하고, 실패이면 에러 메시지를 출력하는 코드를 작성하는 것이 좋습니다.
2025-04-04 13:10