Kezdőlap › Fórumok › Programozás › Partíciók helyfoglalása C programban
- This topic has 6 hozzászólás, 3 résztvevő, and was last updated 17 years, 2 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2008-05-03-14:34 #2160555
NAME
statfs, fstatfs – get file system statisticsSYNOPSIS
#include /* or */int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);😉
A ‘df’ pedig ‘fstatfs64’-et hasznal.Mindezt ‘strace’-el deritettem ki 😀
2008-05-03-14:34 #2160556NAME
statfs, fstatfs – get file system statisticsSYNOPSIS
#include /* or */int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);😉
A ‘df’ pedig ‘fstatfs64’-et hasznal.Mindezt ‘strace’-el deritettem ki 😀
2008-05-03-18:29 #2160557Ez idáig nekem is megvan. Akkor már csak egy kérdésem van: hogyan használjam?
Code:#include
#includeint main () {
struct statfs *buf;statfs(„/dev/hda3”,buf);
printf(„Total: %ld, free: %ld, avail: %ldn”,buf->f_blocks,buf->f_bfree,buf->f_bavail);
return 0;
}A futtatás után:
Code:$ ./a.out
Total: 315, free: 720914, avail: 18550Ha átírom a „/dev/hda3”-at „/dev/hda2”-re, ugyanez az eredmény (mármint minden szám ugyanez).
Nos?Szerk.: bocs, valami gikszer van, a visszatérési érték -1.
2008-05-03-18:29 #2160558Ez idáig nekem is megvan. Akkor már csak egy kérdésem van: hogyan használjam?
Code:#include
#includeint main () {
struct statfs *buf;statfs(„/dev/hda3”,buf);
printf(„Total: %ld, free: %ld, avail: %ldn”,buf->f_blocks,buf->f_bfree,buf->f_bavail);
return 0;
}A futtatás után:
Code:$ ./a.out
Total: 315, free: 720914, avail: 18550Ha átírom a „/dev/hda3”-at „/dev/hda2”-re, ugyanez az eredmény (mármint minden szám ugyanez).
Nos?Szerk.: bocs, valami gikszer van, a visszatérési érték -1.
2008-05-03-18:38 #2160559Na, jó, hülye vagyok (vagy legalábbis egy kezdő c-s). Egy helyes kód:
Code:#include
#include
#includeint main () {
struct statfs buf;printf(„%dn”,statfs(„/pub”,&buf));
printf(„%sn”,strerror(errno));
printf(„Total: %ld, free: %ld, avail: %ldn”,buf.f_blocks,buf.f_bfree,buf.f_bavail);
return 0;
}A /pub egy könyvtár, ami a /-en van. Ha még a visszatérési értékeket beszorzod néggyel, megkapod kilobájtokban az infót.
2008-05-03-18:38 #2160560Na, jó, hülye vagyok (vagy legalábbis egy kezdő c-s). Egy helyes kód:
Code:#include
#include
#includeint main () {
struct statfs buf;printf(„%dn”,statfs(„/pub”,&buf));
printf(„%sn”,strerror(errno));
printf(„Total: %ld, free: %ld, avail: %ldn”,buf.f_blocks,buf.f_bfree,buf.f_bavail);
return 0;
}A /pub egy könyvtár, ami a /-en van. Ha még a visszatérési értékeket beszorzod néggyel, megkapod kilobájtokban az infót.
2009-12-04-20:03 #1888124Üdv!
Szóval a kérdésem rövid, velős, tömör: hogyan lehetne a legfájdalommentesebb módon lekérdezni a partíciók „állapotát” c programban? Szóval valami olyasmi kellene, mint a df. Bűvölöm én a forráskódját, de (még) kicsi vagyok még hozzá. Keresgéltem a /proc ill. a /sys könyvtárakban, sőt még a gugliban is, de nem jutottam előrébb.
Persze lehetőleg a df meghívása nélkül kellene megoldani 😉 -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz