NOME¶
getcwd, get_current_dir_name, getwd - Retorna o diretório de trabalho
corrente
SINOPSE¶
#include <unistd.h>
char *getcwd(char *buf, size_t size);
char *get_current_dir_name(void);
char *getwd(char *buf);
DESCRIÇÃO¶
A função
getcwd() copia o caminho absoluto do
diretório de trabalho corrente para o vetor apontado por
buf,
que tem seu tamanho definido por
size.
Se o caminho absoluto corrente for maior do que o buffer de
size
elementos, então a função irá retornar
NULL
e
errno receberá o valor
ERANGE; A
aplicação (ou programa) deve verificar este tipo de erro, e
alocar um buffer maior se necessário.
Como uma extensão do padrão POSIX.1,
getcwd() aloca o
buffer dinamicamente usando a função
malloc() se
buf for
NULL no momento da chamada à
função. Neste caso , o buffer alocado tem o tamanho de
size a não ser que
size seja zero, quando , então
,
buf é alocado do tamanho que for necessário. É
possível (e recomendável) executar a função
free() se os buffers forem obtidos desta maneira.
get_current_dir_name, que é prototipada somente se
_GNU_SOURCE estiver definido, irá
malloc(3) um vetor
grande o suficiente para conter o nome do diretório corrente. Se a
variável de ambiente
PWD estiver inicializada, e seu valor
estiver correto , então este valor será retornado.
getwd, que é prototipada somente se
_BSD_SOURCE ou
_XOPEN_SOURCE_EXTENDED estiverem definidos, não irá
malloc(3) (alocar) nenhuma memória. O argumento
buf deve
ser um ponteiro para um vetor de tamanho mínimo , em bytes , de
PATH_MAX .
getwd somente retorna os primeiros
PATH_MAX bytes do caminho
atual.
VALOR RETORNADO¶
NULL em caso de falha (por exemplo, se o diretório corrente
não pode ser lido), com
errno recebendo o valor de acordo com o
erro, e
buf em caso de sucesso.
POSIX.1
VER TAMBÉM¶
chdir(2),
free(3),
malloc(3).
TRADUÇÃO PARA A LÍNGUA PORTUGUESA¶
Antonio Belloni <abelloni@ig.com.br> (tradução)