Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Размер файла


Автор: STRel_ok 1.5.2005, 19:00
ПОМОГИТЕ!!!
Моя программа должна соединять два файла в один, и передать содержимое этого файла через межпроцессный канал...Но дело в том, что мне нужно считать именно столько символов из канала, сколько содержится в этом файле.Посему у меня вопрос:Как получить int значение размера файла(количество символов в нём)?Заранее спасибо))) smile smile smile

Автор: bilbobagginz 1.5.2005, 19:20
а если есть больше "символов" чем влезает в int ?
не понимаю зачем тебе знать сколько байтов тебе перешвыривать ....
лучше жди EOF а после него закрывай файл .... имхо.
а вообще проверь man fstat .

Автор: STRel_ok 1.5.2005, 19:53
нет мне нужно кол во символов цифрой ... думаю меньше чем 32к ..задача сводиться к нахождению размера файла(больное воображение "работодателя" (преподsmile)). а вот как ето сделать не пойму.

Автор: bilbobagginz 2.5.2005, 08:17
man fstat! не понимаешь ?
читай мануал системного вызова fstat()

Автор: dargaard 2.5.2005, 18:41
Код

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>

int main () {

    int fd;
    fd = open("file.txt",O_RDONLY);
    if (fd<=0) { perror("error "); return; }

    struct stat st;
    fstat(fd,&st);
    printf("size: %d\n",st.st_size);
    close (fd);

}


Добавлено @ 18:43
з.ы. размер фаила != количество символовsmile (если у тебя multi/double-byte character фаил)

Автор: STRel_ok 3.5.2005, 02:43
люди спасибка агромное smile smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)