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: Tanya321
| Femeie 24 ani Giurgiu cauta Barbat 24 - 63 ani |
|
cr3us
Moderator
Inregistrat: acum 16 ani
Postari: 160
|
|
statvfs, fstatvfs - preia statstica fisierelor sistem
Este necesar sa includeti fisierul header(biblioteca):
#include <sys/statvfs.h>
Forma generala:
int statvfs(const char *path, struct statvfs *buf); int fstatvfs(int fd, struct statvfs *buf);
Descriere
Functia statvfs intoarce informatie despre un sistem de fisiere montat. Path este calea oricarui sistem de fisiere montat. Buf este un pointer catre o structura statvfs definita ca cea de mai jos:
struct statvfs { unsigned long f_bsize; /* file system block size */ unsigned long f_frsize; /* fragment size */ fsblkcnt_t f_blocks; /* size of fs in f_frsize units */ fsblkcnt_t f_bfree; /* # free blocks */ fsblkcnt_t f_bavail; /* # free blocks for non-root */ fsfilcnt_t f_files; /* # inodes */ fsfilcnt_t f_ffree; /* # free inodes */ fsfilcnt_t f_favail; /* # free inodes for non-root */ unsigned long f_fsid; /* file system id */ unsigned long f_flag; /* mount flags */ unsigned long f_namemax; /* maximum filename length */ };
Aici tipurile fsblkcnt_t si fsfilcnt_t sunt definite in <sys/types.h>. Ambele vor fi declarate ca unsigned long.
Campul f_flag este un bit masca (ale flag-urilor montate pt. mai multe informatii scrieti man mount in consola Linux-ului)
Flag-urile:
ST_RDONLY -sistem de fisiere read only ST_NOSUID -bitii setuid(set user id) si setgid(set group id) sunt ignorati de exec.
Functia fstatvfs- intoarce aceeasi informatie despre un fisier deschis referit de un descriptor fd(file descriptor).
In caz de succes valoarea 0 este intoarsa.
In caz de eroare valoarea -1 este intoarsa si un mesaj de eroare este setat corespunzator.
Erori:
EBADF -fd nu este un descriptor de fisier valid pt.deschiderea fisierului (pt. functia fstatvfs)
EACCES - permisiunea de cautare este interzisa pt.o componenta a prefixului caii (pt.functia statvfs)
ELOOP- prea multe link-uri simbolice gasite in translatarea caii (pt.functia statvfs)
ENAMETOOLONG -numele caii este prea lung (pt.functia statvfs)
ENOENT -fisierul referit de cale nu exista (pt.functia statvfs) ENOTDIR -o componenta a prefixului caii nu este un director (pt.functia statvfs)
EFAULT -Buf sau path fac referire la o adresa invalida
EINTR -aces apel a fost intrerupt de un semnal
EIO - o eroare I/O a intervenit in timpul citirii din sistemul de fisiere
ENOMEM -memorie insuficienta a nucleului sistemului de operare (insufficient kernel memory) ENOSYS -sistemul de fisiere nu suporta acest apel EOVERFLOW -cateva valori sunt prea mari pt.a fi reprezentate in structura intoarsa definita mai sus
_______________________________________ Cr3u$
|
|
pus acum 15 ani |
|