NOME¶
getdents - obtém as entradas de diretórios
SINOPSE¶
#include <unistd.h>
#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
_syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count);
int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
DESCRIÇÃO¶
getdents lê várias estruturas
dirent a partir do
diretório apontado por
fd dentro da área de
memória apontada por
dirp. O parãmetro
count
é o tamanho da área de memória.
A estrutura
dirent é declarada como segue:
struct dirent
{
long d_ino; /* inode number */
off_t d_off; /* offset to next dirent */
unsigned short d_reclen; /* length of this dirent */
char d_name [NAME_MAX+1]; /* file name (null-terminated) */
}
d_ino é um número de inode.
d_off é a
distãncia a partir do início do diretório para o
iníco do próximo
dirent.
d_reclen é o
tamanho da completa
dirent. d_name é um nome de arquivo
vazio.
Esta chamada substitui
readdir(2).
VALORES RETORNADOS¶
Em caso de sucesso, o número de bytes lidos é retornado. No final
do diretório, 0 é retornado. Caso contrário, -1 is
retornado, e
errno é selecionado apropriadamente.
ERROS¶
- EBADF
- Descritor de arquivos inválido fd.
- EFAULT
- O argumento aponta para o espaço de enderenço dp processo
solicitante.
- EINVAL
- O buffer de resultado é muito pequeno.
- ENOENT
- Sem aquele diretório.
- ENOTDIR
- O descritor de arquivos não se refere para um
diretório.
DE ACORDO COM¶
SVr4, SVID. Na documentação SVr4 condições de erro
adicionais ENOLINK, EIO.
VEJA TAMBÉM¶
readdir(2),
readdir(3)
TRADUZIDO POR LDP-BR em 21/08/2000.¶
André L. Fassone Canova <lonelywolf@blv.com.br>
(tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx>
(revisão)