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.
EM CONFORMIDADE COM
POSIX.1
VER TAMBÉM
TRADUÇÃO PARA A LÍNGUA PORTUGUESA
Antonio Belloni <abelloni [AT] ig.br> (tradução)