getcwd.c (getcwd): If pathname is NULL, then obtain SIZE bytes of space using malloc.

P
        * getcwd.c (getcwd): If pathname is NULL, then obtain SIZE
        bytes of space using malloc.

From-SVN: r27161
This commit is contained in:
Melissa O'Neill 1999-05-25 21:04:27 -06:00 committed by Jeff Law
parent 71cce721af
commit d05ba2205f
1 changed files with 10 additions and 0 deletions

View File

@ -14,6 +14,9 @@ DESCRIPTION
current directory's path doesn't fit in LEN characters, the result current directory's path doesn't fit in LEN characters, the result
is NULL and errno is set. is NULL and errno is set.
If pathname is a null pointer, getcwd() will obtain size bytes of
space using malloc.
BUGS BUGS
Emulated via the getwd() call, which is reasonable for most Emulated via the getwd() call, which is reasonable for most
systems that do not have getcwd(). systems that do not have getcwd().
@ -48,6 +51,13 @@ getcwd (buf, len)
errno = ERANGE; errno = ERANGE;
return 0; return 0;
} }
if (!buf) {
buf = (char*)malloc(len);
if (!buf) {
errno = ENOMEM;
return 0;
}
}
strcpy (buf, ourbuf); strcpy (buf, ourbuf);
} }
return buf; return buf;