char cwd[256];
if (getcwd(cwd, sizeof(cwd)) == NULL) {
return -1;
}
Первое приходит на ум, что getcwd()
может вернуть NULL
, когда cwd недостаточно велик. Есть ли другие случаи?В каких обстоятельствах getcwd() возвращает NULL?
char cwd[256];
if (getcwd(cwd, sizeof(cwd)) == NULL) {
return -1;
}
Первое приходит на ум, что getcwd()
может вернуть NULL
, когда cwd недостаточно велик. Есть ли другие случаи?В каких обстоятельствах getcwd() возвращает NULL?
Its documentation состояния:
ERRORS The getcwd() function shall fail if: [EINVAL] The size argument is 0. [ERANGE] The size argument is greater than 0, but is smaller than the length of the pathname +1. The getcwd() function may fail if: [EACCES] Read or search permission was denied for a component of the pathname. [ENOMEM] Insufficient storage space is available.
If the length of the absolute pathname of the current working direc‐
tory, including the terminating null byte, exceeds size bytes, NULL is
returned, and errno is set to ERANGE; an application should check for
this error, and allocate a larger buffer if necessary.
источник: человек getcwd
Если у вас есть вопросы относительно точной семантики функции, смотрите в соответствующей документации по буквам это: Стандарт языка, стандарт POSIX, man-страницы, MSDN, ... Просить кого-то процитировать страницу для вас - ленивый и не очень полезный. Кроме того, это занимает больше времени. – Deduplicator