您要填充的缓冲区的大小:
char result[PATH_MAX];
char *r = getcwd(result, PATH_MAX);
Run Code Online (Sandbox Code Playgroud)
未能正确设置(或点ENAMETOOLONG/ ERANGE)可能会导致缓冲区溢出问题。
注意:并非所有平台都提供 PATH_MAX。如果您可以确定它存在于您的平台上,那就非常方便了。
您还可以使用realpath(), (POSIX.1-2008),它会malloc()帮助您更清晰地执行此操作:
char *result = realpath(".", NULL);
// do stuff with result
free(result);
Run Code Online (Sandbox Code Playgroud)