[ Predrag Damnjanovic @ 25.12.2002. 14:49 ] @
Kako da saznam velicinu nekog fajla, a da pri tome ne koristim OS-specific API?
Znaci postoji li neka ANSI C funkcija za to?

Ako ne postoji, kako onda u UNIX okruzenju da nadjem velicinu fajla?
Za Windows znam, koristi se WinAPI funkcija GetFileSize.
[ dRock9 @ 25.12.2002. 15:22 ] @
Probaj sa filelength()
Funkcija se nalazi u io.h (trebalo bi da je ovo standardni modul).

Pozdrav
[ Predrag Damnjanovic @ 25.12.2002. 18:01 ] @
U gcc-u takvo nesto ne postoji, ni u jednom header fajlu (pretrazio sam ceo /usr/include).
[ sspasic @ 25.12.2002. 19:26 ] @
Pogledaj funkcije stat i fstat.
[ Pera_Anarhista @ 26.12.2002. 22:47 ] @
pretpostavljam da je stdio.h standard... sa fopen & fseek da se uraditi to sto zelis...
[ Predrag Damnjanovic @ 07.01.2003. 17:22 ] @
Code:

long get_file_length (FILE *fstream)
{
    fseek (fstream, 0, SEEK_END);
    return ftell (fstream);
}

po potrebi posle vratiti prethodnu poziciju.
[ brankok @ 08.01.2003. 14:00 ] @
Za one koji vole da je kod u duhu jezika C++ predlazem koriscenje klase ifstream cija se deklaracija nalazi u zaglavlju <fstream.h>. Sada se moze deklarisati jedan objekat ove klase i pridruziti mu se datoteka cija se velicina trazi. Za ostalo se koriste funkcije clanice klase ifstream:

ifstream in("dummy.txt");

in.seekg(0, ios::end); // kraj datoteke

streampos sp = in.tellg(); // velicina datoteke

cout << "file size = " << sp << endl;


[ Milos Babic @ 13.01.2003. 22:40 ] @
Kod je:

struct stat buff;
....
if(fstat(fd,&buff) <0) /*fd je deskriptor tvog fajla*/
/*obradi gresku*/
printf("%d\n",buff.st_size);/*st_size je velicina fajla u bajtovima*/
....

Pozdrav,
Milos