2011-02-14 125 views

回答

2

您在第一個參數中提供的緩衝區的長度,以避免發生溢出。

4

要填充的緩衝區的大小:

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

未正確設置這一(或現貨ENAMETOOLONG/ERANGE)可能會導致緩衝區溢出問題。

注意:Not all platforms provide PATH_MAX。如果你可以確定它在你的平臺上,它是非常方便的。

您還可以使用realpath(),(POSIX.1-2008),這將malloc()內存你這樣做更乾淨:

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