второй параметр getcwd - PullRequest
       17

второй параметр getcwd

2 голосов
/ 14 февраля 2011

Что мне заполнить вторым параметром функции getcwd, если я читаю текущий каталог?

Ответы [ 2 ]

4 голосов
/ 14 февраля 2011

Размер буфера, который вы хотите заполнить:

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);
2 голосов
/ 14 февраля 2011

Длина буфера, который вы указываете в первом параметре, чтобы переполнение не могло произойти.

...