Форум программистов, компьютерный форум CyberForum.ru

fwrite, возвращает ноль, хотя... - C++

Восстановить пароль Регистрация
 
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 654
27.05.2010, 11:31     fwrite, возвращает ноль, хотя... #1
Код
    FILE *h;    
    if ((h = fopen("1.p", "w")) == NULL) {printf("Can't create 1.p.\n");exit(1);}
    char buff[1045];    
    k+=size;
    //копирование области данных
    rcv_size=fwrite(&buff[21],1,size,h);
    if (rcv_size==0)
    {
          kk++; //попадаем периодически сюда, НО!! size>0!!!
    }
Из массива buff, размер которого 1045 байт, я вытаскиваю кусок размером 1024 байт, т.е. в из &buff[21].
Нооо! временами попадаю в if, т.е. число записанных данных равно 0, хотя size>0. В чем же глюк такой?....
Пишу под Linux.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2010, 11:31     fwrite, возвращает ноль, хотя...
Посмотрите здесь:

fwrite C++
Ошибка деления на ноль, хотя это должно обойти C++
При нахождении количества локальных максимумов в последовательности for_each возвращает ноль C++
C++ Ввести данные структуры, и если на входе пустая строка, функция возвращает "ноль" (Прокомментировать каждую строку)
Ф-ия month всегда возвращает true, хотя так не должно быть C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.05.2010, 11:46     fwrite, возвращает ноль, хотя... #2
Вообще fwrite(&buff[21],1,size,h); означает записать в файл символ находящийся в b[21] size-раз.
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 654
27.05.2010, 13:16  [ТС]     fwrite, возвращает ноль, хотя... #3
Цитата Сообщение от kazak Посмотреть сообщение
Вообще fwrite(&buff[21],1,size,h); означает записать в файл символ находящийся в b[21] size-раз.
нет, я неправильно вопрос описал, там на самом деле не массив, а указатель на массив. а по поводу size раз - не правда, в программной среде CodeWarrrior на месте size как раз значится объем передаваемых данных...
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.05.2010, 13:35     fwrite, возвращает ноль, хотя... #4
Если используется массив указателей, тогда указатель передавать надо без операции взятия адреса &.
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 654
27.05.2010, 13:48  [ТС]     fwrite, возвращает ноль, хотя... #5
грубо говоря сделано так:
char a[1045];
char *b=a;
fwrite(&b[21],1,size,h);

вроде проверял что на вход fwrite приходит, все сходится.
только блин, временами fwrite 0 возвращает...
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.05.2010, 14:05     fwrite, возвращает ноль, хотя... #6
Цитата Сообщение от sitesv Посмотреть сообщение
временами fwrite 0 возвращает...
это происходит случайным образом, или всегда на определенных наборах данных?
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
27.05.2010, 15:02     fwrite, возвращает ноль, хотя... #7
Полный рабочий кусок кода в виде отдельной программы
Иначе разговор пустой
И чтобы сказать правильный код или нет - нужно знать что код именно должен делать ?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
27.05.2010, 15:13     fwrite, возвращает ноль, хотя... #8
Цитата Сообщение от kazak Посмотреть сообщение
Вообще fwrite(&buff[21],1,size,h); означает записать в файл символ находящийся в b[21] size-раз.
Не-а! Это значит записать в файл h size элементов по 1 байту каждый начиная с buf[21]. В любом случае явно не то, что задумано...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 23:31     fwrite, возвращает ноль, хотя...
Еще ссылки по теме:

Сформировать массив К из номеров столбцов матрицы, в которых есть хотя бы один ноль C++
GetPrivateProfileInt всегда возвращает ноль C++
C++ RegOpenKeyEx возвращает 2 хотя ключ в реестре точно существует

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 654
27.05.2010, 23:31  [ТС]     fwrite, возвращает ноль, хотя... #9
Мужики, спасибо за думку! В итоге оказалось , что чип, на который производится запись, по неизвестным причинам не позволяет записать более 2.2 мб, из-за этого и возвращался ноль... Спасибо все же! )
Yandex
Объявления
27.05.2010, 23:31     fwrite, возвращает ноль, хотя...
Ответ Создать тему
Опции темы

Текущее время: 14:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru