現在のディレクトリを読み取る場合、関数 getcwd の 2 番目のパラメーターには何を入力すればよいですか?
2 に答える
4
埋めたいバッファのサイズ:
char result[PATH_MAX];
char *r = getcwd(result, PATH_MAX);
これを正しく設定しない (またはスポットENAMETOOLONG
/を設定しないERANGE
) と、バッファ オーバーフローの問題が発生する可能性があります。
警告:すべてのプラットフォームが PATH_MAX を提供しているわけではありません。それがあなたのプラットフォームにあると確信できるなら、それは非常に便利です。
realpath()
, (POSIX.1-2008) を使用することもできmalloc()
ます。これにより、これをよりクリーンに行うことができます。
char *result = realpath(".", NULL);
// do stuff with result
free(result);
于 2011-02-14T12:26:28.793 に答える
2
オーバーフローが発生しないように、最初のパラメーターで指定するバッファーの長さ。
于 2011-02-14T12:26:13.107 に答える