getcwd第二个参数

lit*_*tuk 2 c++ getcwd

如果我正在读取当前目录,那么函数 getcwd 的第二个参数应该填写什么?

Fle*_*exo 5

您要填充的缓冲区的大小:

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)