NOMBRE¶
getcwd, get_current_dir_name, getwd - Obtienen el directorio de trabajo en curso
SINOPSIS¶
#include <unistd.h>
char *getcwd(char *buf, size_t tam);
char *get_current_dir_name(void);
char *getwd(char *buf);
DESCRIPCIÓN¶
La función
getcwd() copia el nombre de camino absoluto del
directorio de trabajo en curso al vector apuntado por
buf, que tiene de
longitud
tam.
Si el nombre de camino absoluto antedicho requiriera un búfer mayor de
tam elementos, se devolvería
NULL y
errno
tomaría el valor
ERANGE; una aplicación debería
comprobar si ha ocurrido este error, y reservar un búfer más
grande si fuera necesario.
Como una extensión al estándar POSIX.1,
getcwd() reserva el
búfer dinámicamente empleando para ello
malloc() si
buf es
NULL a la hora de la llamada. En este caso, el
búfer reservado tiene la longitud
tam a menos que
tam sea
cero, situación en la que
buf se reservará con un
tamaño tan grande como sea necesario. Es posible (e, incluso,
recomendable) liberar con
free() los búferes si han sido
obtenidos por esta vía.
get_current_dir_name, cuyo prototipo sólo existe si está
definida la macro
__USE_GNU, obtendrá memoria con
malloc(3) para un vector lo bastante grande como para alojar el nombre
del directorio en curso. Si la variable de ambiente
PWD existe y tiene
un valor correcto, se devuelve este valor.
getwd, cuyo prototipo sólo existe si está definida la macro
__USE_BSD, no obtendrá memoria con
malloc(3) ni de
ninguna otra forma. El argumento
buf deberá ser un puntero a un
vector de al menos
PATH_MAX bytes de largo.
getwd solamente
devuelve los primeros
PATH_MAX bytes del nombre de camino real.
VALOR DEVUELTO¶
NULL en caso de fallo (por ejemplo, si el directorio en curso no es
legible), con un valor apropiado en
errno, y
buf en caso de
acabar con éxito.
POSIX.1
VÉASE TAMBIÉN¶
chdir(2),
free(3),
malloc(3).