[ 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
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.