LINUX.ORG.RU

Если на чистом ISO C, то:

man fseek
man ftell

Если допустим POSIX API, то

man stat
man fstat

anonymous
()
Ответ на: комментарий от Obidos

Заметим в скобках, что на чистом ISO C узнать размер файла нельзя, по каковому вопросу см. comp.lang.c FAQ. Т.е. прием с fseek/ftell на самом деле не будет гарантированно работать на всех системах.

aa5779
()
Ответ на: комментарий от aa5779

>Т.е. прием с fseek/ftell на самом деле не будет гарантированно работать на всех системах.

ВО всяком случае ISO стандарт не обещает, что ftell будет возвращать что-то разумное. :)

Murr ★★
()

exec("ls -l file")

и поймать stdout :)

Krasu
()
Ответ на: комментарий от Krasu

Сразу видно, человек внимательно читает первый пост :) и вникает в проблему.

KIV
()

Можно воспользоваться POSIX 5.6 вызовом stat

#include <stdio.h> #include <sys/stat.h>

int main(int argc, char *argv[]) { struct stat st; // Если не задано имя файла, размер которого необходимо опеределить if(argc != 2) { // Выводим сообщение об ошибке fprintf(stderr,"Ошибка: Неверно число параметров!\n\n"); // Выводим правила вызова программы fprintf(stderr,"Правила вызова программы:\n"); fprintf(stderr," %s <имя_файла>\n",argv[0]); // Выход с ошибочным кодом возврата return 1; } // Получаем статистическую информацию ф файле stat(argv[1],&st); // Выводим сообщение о размере файла printf("Размер файла '%s': %d байт.\n\n",argv[1],st.st_size); // Выход с успешным кодом возврата return 0; }

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.