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)