2011-02-14 7 views

답변

2

오버플로가 발생하지 않도록 첫 번째 매개 변수에 입력 한 버퍼의 길이입니다.

4

채우려 버퍼의 크기 : 올바르게 설정 (또는 ENAMETOOLONG/ERANGE 자리)하는

char result[PATH_MAX]; 
char *r = getcwd(result, PATH_MAX); 

않으면 오버 플로우 문제를 버퍼가 발생할 수 있습니다.

경고 : Not all platforms provide PATH_MAX. 플랫폼에 있는지 확인할 수 있다면 매우 편리합니다. malloc() 기억이 더 깨끗하게 할 것이기

또한 realpath()을 사용할 수 있습니다 (POSIX.1-2008) :

char *result = realpath(".", NULL); 
// do stuff with result 
free(result); 
관련 문제