проблемы с fwrite()
От: Igore Россия  
Дата: 12.01.04 14:34
Оценка:
Проблема заключается в следующем: если я fwritе-ом пишу матрицу в бинарный файл 2900х2900 и выше, то создается файл нужного размера, но весь забитый нулями.
Сколько fwrite может записать за раз в файл данных?
И возможно ли это обойти?
Re: проблемы с fwrite()
От: LaptevVV Россия  
Дата: 12.01.04 14:42
Оценка:
Здравствуйте, Igore, Вы писали:

I>Проблема заключается в следующем: если я fwritе-ом пишу матрицу в бинарный файл 2900х2900 и выше, то создается файл нужного размера, но весь забитый нулями.

I>Сколько fwrite может записать за раз в файл данных?
I>И возможно ли это обойти?
Скорее всего, функция здесь нипричем. Лучше покажи текст, как пишешь — яснее станет, поченму.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: проблемы с fwrite()
От: Igore Россия  
Дата: 12.01.04 15:00
Оценка:
Здравствуйте, LaptevVV, Вы писали:

void vvodfile(double *c,char *filename,int endi,int endj){
FILE* infile;
int buf;
strcat(filename,".qqq");
infile = fopen(filename, "wb");
fwrite(c,sizeof(double),endi*endj,infile);
fclose(infile);
}
Re[2]: проблемы с fwrite()
От: Igore Россия  
Дата: 12.01.04 15:51
Оценка:
сейчас проверил не может записаться файл больше 63,9 Мб так-что это всеже возможно проблемы fwrite
Re[3]: проблемы с fwrite()
От: LaptevVV Россия  
Дата: 12.01.04 16:15
Оценка:
Здравствуйте, Igore, Вы писали:

I>Здравствуйте, LaptevVV, Вы писали:


I>void vvodfile(double *c,char *filename,int endi,int endj){

I> FILE* infile;
I> int buf;
I> strcat(filename,".qqq");
I> infile = fopen(filename, "wb");
I> fwrite(c,sizeof(double),endi*endj,infile);
I> fclose(infile);
I>}

Не, а зачем тебе писать сразу 2900х2900? Выводи построчно: напиши цикл от 1 до 2900 и выводи 2900 строк матрицы.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: проблемы с fwrite()
От: Igore Россия  
Дата: 12.01.04 17:13
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Не, а зачем тебе писать сразу 2900х2900? Выводи построчно: напиши цикл от 1 до 2900 и выводи 2900 строк матрицы.


Файл записывается на сервере, и если писать построчно то слишком много времени занимается на пересылку по сети. Проверено .

И еще один вопрос никогда не требовалось устонавливать и работать с PVM?
http://www.dvo.ru/bbc/pvm.html
Вопрос остался в силе сколько за раз может записать fwrite 64 Mb?
Re[5]: проблемы с fwrite()
От: LaptevVV Россия  
Дата: 12.01.04 17:21
Оценка:
Здравствуйте, Igore, Вы писали:

I>Файл записывается на сервере, и если писать построчно то слишком много времени занимается на пересылку по сети. Проверено .

Тогда да. И это похоже, действительно ограничение, но может, не fwrite, а буферов каких-нибудь?
Или просто ограничение оси.
А не пробовал низкоуровневым write пользоваться?
I>И еще один вопрос никогда не требовалось устонавливать и работать с PVM?
I>http://www.dvo.ru/bbc/pvm.html
I>Вопрос остался в силе сколько за раз может записать fwrite 64 Mb?
Спасибо за классную ссылку. Нет этим не приходилось.
А попробуй разбить по 32 метра. Или по 50. Тогда и прям подряд в программе напиши несколько fwrite.
Их же немного будет и время не такое большое получится, как при использовании цикла.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: проблемы с fwrite()
От: alekzander  
Дата: 12.01.04 22:42
Оценка:
у меня похожая проблема с mingw gcc.
только при чтении fread считывает вроде бы без ошибки, но буффер забит нулями начиная с определенного места.
при замене fread на _lread или компиляции на msvc все нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.