|
|
  |
Размер файла на C, Оптимальный вариант |
|
|
|
Feb 26 2007, 01:26
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(Andy Great @ Feb 25 2007, 17:06)  Если надо определить размер файла в байтах, то используйте fopen/lseek. stat ? fstat ? - и в какой ОС API?
|
|
|
|
|
Feb 26 2007, 08:06
|
Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469

|
Цитата Не понятен вопрос. если до компиляции, то "средняя температура по больнице" ровна 1000 строк - 4 КБ. после компиляции получите реальный размер Я имел ввиду любого файла (не того, в котором код или бинарник).  Цитата Если надо определить размер файла в байтах, то используйте fopen/lseek. Я понял fseek. Вот только, что вернет мне этот fseek? Я всегда думал, что код ошибки или 0. Приведите пример, может я чего не знаю. Как бы Вы пользовались. Цитата stat ? fstat ? - и в какой ОС API? Я же написал, ТОЛЬКО СТАНДАРТНАЯ БИБЛИОТЕКА. Какая разница какое API?
|
|
|
|
|
Feb 26 2007, 11:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(zltigo @ Feb 26 2007, 10:48)  Цитата(InvisibleFed @ Feb 26 2007, 07:06)  Я понял fseek. Вот только, что вернет мне этот fseek?
Про fseek() это Вы сами придумали - читайте внимательно, какую функцию посоветовали - lseek(). Проще, как уже советовали, stat(). Только эта функция не входит в стандартную библиотеку Си.
|
|
|
|
|
Feb 26 2007, 11:27
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(InvisibleFed @ Feb 26 2007, 09:06)  Я же написал, ТОЛЬКО СТАНДАРТНАЯ БИБЛИОТЕКА. Какая разница какое API? Стандартная В ЧЁМ? ... ни хрена себе  - так вы и в Win32 станете вызывать fork() ...
|
|
|
|
|
Feb 26 2007, 11:38
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(andrew_b @ Feb 26 2007, 10:22)  Проще, как уже советовали, stat(). Только эта функция не входит в стандартную библиотеку Си. Перечитайте первый пост, пожалуйста. Цитата(Olej @ Feb 26 2007, 10:27)  Стандартная В ЧЁМ? clib есть минимальная библиотека c определенным стандартом набором независящих от используемой платформы функций.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 26 2007, 12:25
|
Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469

|
Цитата Про fseek() это Вы сами придумали - читайте внимательно, какую функцию посоветовали - lseek(). Я конечно рад пользовать, но чего-то не нашел подтверждения, что эта функция входит входит в clib. То что это системный вызов Unix (причем стандартизированный) - это да, но С?..
|
|
|
|
|
Feb 27 2007, 05:01
|
Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469

|
Цитата Юзаю fseek(file,0,SEEK_END) и затем ftell. Вроде как оно стандартное, и всегда и везде работает. Респект! Как это я с ftell промахнулся. Всем спасибо. P.S. А вообще капец как мы все на систему (ОС) подсели. Чуть ниже - и все, кердык, два дня искал.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|