lehet, hogy ez egy nagyon láma kérdés, de magamtól nem találtam rá megoldást sem a glibc manualban, sem a Google-ben. hogyan lehet "elegánsan" lekérdezni C programból egy adott fájlrendszeren lévő szabad hely mennyiségét, ha adott egy könyvtár neve azon a fájlrendszeren? nem minősül "elegáns" megoldásnak a df kimenetének olvasása :) (de végső esetben lehet, hogy ehhez kell folyamodnom :( )
a df-en futtatott strace szerint maga a df a kernel statfs64 hívását használja ehhez. van más megoldás esetleg? ha nincs, akkor a statfs64 használható más rendes operációs rendszereken is, vagy csak a Linux kernel sajátossága?
[quote:4743251a62="gsimon"]man statfs? (Amúgy eszerint nem hordozható a statfs64, de mond tippeket, hogy más rendszeren hogy s mint oldható meg.)
kösz! hülye voltam, én is próbálkoztam a man statfs-sel, csak nem vettem észre, hogy a szükséges man oldalak nem voltak felrakva a gépemre, elhittem neki, hogy nincs is ilyen manpage.
A 64 végű hívásokat jobb elfelejteni, sokkal jobb helyette a sok-sok include elé betenni ilyet:
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
innen kezdve az összes fájlkezelő függvényed (és adatstruktúrád ha jól tudom) automatice 64 bites lesz. Persze ez csak akkor jó, ha nem akarod a 32 és 64 bites hívásokat keverni valamiféle kompatibilitási ok miatt.
Hozzászólások
sziasztok!
lehet, hogy ez egy nagyon láma kérdés, de magamtól nem találtam rá megoldást sem a glibc manualban, sem a Google-ben. hogyan lehet "elegánsan" lekérdezni C programból egy adott fájlrendszeren lévő szabad hely mennyiségét, ha adott egy könyvtár neve azon a fájlrendszeren? nem minősül "elegáns" megoldásnak a df kimenetének olvasása :) (de végső esetben lehet, hogy ehhez kell folyamodnom :( )
a df-en futtatott strace szerint maga a df a kernel statfs64 hívását használja ehhez. van más megoldás esetleg? ha nincs, akkor a statfs64 használható más rendes operációs rendszereken is, vagy csak a Linux kernel sajátossága?
előre is köszi a segítséget.
man statfs? (Amúgy eszerint nem hordozható a statfs64, de mond tippeket, hogy más rendszeren hogy s mint oldható meg.)
[quote:4743251a62="gsimon"]man statfs? (Amúgy eszerint nem hordozható a statfs64, de mond tippeket, hogy más rendszeren hogy s mint oldható meg.)
kösz! hülye voltam, én is próbálkoztam a man statfs-sel, csak nem vettem észre, hogy a szükséges man oldalak nem voltak felrakva a gépemre, elhittem neki, hogy nincs is ilyen manpage.
A 64 végű hívásokat jobb elfelejteni, sokkal jobb helyette a sok-sok include elé betenni ilyet:
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
innen kezdve az összes fájlkezelő függvényed (és adatstruktúrád ha jól tudom) automatice 64 bites lesz. Persze ez csak akkor jó, ha nem akarod a 32 és 64 bites hívásokat keverni valamiféle kompatibilitási ok miatt.