Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
anka...
Femeie
25 ani
Valcea
cauta Barbat
25 - 40 ani
Mihai Sprinceana / SO Linux&Unix / Functia getdents (apel sistem) Moderat de Cristy89, Houssey, cr3us, fireratbat, profu.info, sade5000
Autor
Mesaj Pagini: 1
cr3us
Moderator

Inregistrat: acum 16 ani
Postari: 160
NAME
getdents - preia intrarile unui director(getdents-get directory entries)

Este necesar sa aveti inclus fisierele header(biblioteca):

#include <unistd.h>
#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/unistd.h>

Forma generala:

_syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count);

int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);


Apelul de sistem getdents citeste mai multe structuri getdent dintr-un director referit prin fd(file descriptor-descriptor de fisier) in zona de memorie referita de dirp. Parametrul count reprezinta dimensiunea zonei de memorie.



The dirent structure is declared as follows:

    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 is an inode number. d_off is the distance from the start of the directory to the start of the next dirent. d_reclen is the size of this entire dirent. d_name is a null-terminated file name.


In caz de succes nr. de bytes cititi este intors. La sfarsitul directorului valoarea 0 este intoarsa. In caz de eroare valoarea -1 este intoarsa si este setat un mesaj de eroare corespunzator.


Erori functia getdents:

EBADF - descriptor de fisier gresit (invalid file descriptor)

EFAULT -argumentul se refera in afara procesului de apelare al spatiului de adresa

EINVAL -buffer-ul este prea mic

ENOENT - nu exista un asemenea director

ENOTDIR -descriptorul de fisier fd nu se refera la un director


_______________________________________
Cr3u$

pus acum 15 ani
   
Pagini: 1  

Mergi la