-7
char cwd[256];
if (getcwd(cwd, sizeof(cwd)) == NULL) {
    return -1;
}

首先想到getcwd()可能 return NULL,当 cwd 不够大时。还有其他情况吗?

4

2 回答 2

5

其文档指出:

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.
于 2015-01-06T12:40:36.513 回答
1
 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

于 2015-01-06T12:40:39.273 回答