Re[5]: Как определить размер(длину) файла в Линукс средствам
От: Conr Россия  
Дата: 28.11.07 19:40
Оценка:
Здравствуйте, Dimitar, Вы писали:

D>В итоге реализовал следующим образом:

D>
D>off_t o_tCurentPosition = lseek(fd, 0, SEEK_CUR);
D>off_t o_tResult = lseek(fd, 0, SEEK_END);
D>lseek(fd, o_tCurentPosition, SEEK_SET);
D>return o_tResult;
D>


Все-таки очень советую переделать на fstat
    struct stat fs; 
    if( fstat(fd, &fs) != 0)
    { 
        <error hander>
    }

    return fs.st_size;

Бесполезное прыганье по файлу обычно ни к чему хорошему не приводит. Особенно если файлом окажется какой-нить non seekable device. На некоторых системах можно подхватить неплохую задержку, прежде чем lseek отвалится и сообщит об ошибке, а fstat отработает моментально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.