November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, August 2nd, 2010 12:51 pm
int size=0;
...
fread( &size, sizeof(int), 1, f);
while(size--)
{
...
        int size=0;
        ...
        fread( &size, sizeof(int), 1, f);
        while(size--)
        {

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Monday, August 2nd, 2010 11:53 am (UTC)
и работает? ,)
Monday, August 2nd, 2010 11:56 am (UTC)
А что ему сделается?
Monday, August 2nd, 2010 12:11 pm (UTC)
Варианты-то можно придумать ,)
Monday, August 2nd, 2010 12:02 pm (UTC)
работает.. эти size больше никак не используются, чисто счётчик записей, которые надо прочитать из файла.
Monday, August 2nd, 2010 12:04 pm (UTC)
А в чём тогда проблема? структурный у нас язык или где?
Monday, August 2nd, 2010 12:05 pm (UTC)
Проблема в читабельности кода.

Там ещё красивое есть, я минуты две думал, чтО они имели в виду:
        FILE *f = fopen("/hdd/epg.dat", "r");
        if (f)
        {
                unlink("/hdd/epg.dat");
Monday, August 2nd, 2010 12:10 pm (UTC)
Хм. Это классика, нет? Открыть и удалить сразу.
Monday, August 2nd, 2010 12:12 pm (UTC)
Оно, конечно, от случая зависит. В данном случае я бы так делать не стал, потому что программа, которая это считывает, имеет обыкновение падать в корку, ничего не сохраняя. В том числе и этот файл. Я бы его стирал непосредственно перед записью нового экземпляра.
Monday, August 2nd, 2010 12:52 pm (UTC)
Тогда, если это не временные данные, я бы его вообще не стирал. А переименовывал в *.bak, а на его место переимновывал бы новый (который создавал бы как *.new)
Monday, August 2nd, 2010 12:57 pm (UTC)
это место для хранения кэша EPG на диске на время перезапуска програмы. Обычно он хранится в памяти. В какой момент он создаётся, я не знаю, но здесь он только считывается и сразу стирается с диска.
Monday, August 2nd, 2010 12:11 pm (UTC)
Проблема в читабельности кода.
Ну, и опять же, зачем вам/нам дали вложенные блоки? :)
Не, сам бы я так не написал, но совсем преступления (в отличие от memcmp()) я в этом не вижу.