rethink their coding style…

    Выдержка из исходников gcc, файл libcpp/files.c

    Copy Source | Copy HTML
    1. /* off_t might have a wider range than ssize_t - in other words,
    2. the max size of a file might be bigger than the address
    3. space. We can't handle a file that large. (Anyone with
    4. a single source file bigger than 2GB needs to rethink
    5. their coding style.) Some systems (e.g. AIX 4.1) define
    6. SSIZE_MAX to be much smaller than the actual range of the
    7. type. Use INTTYPE_MAXIMUM unconditionally to ensure this
    8. does not bite us. */
    9.    if (file->st.st_size > INTTYPE_MAXIMUM (ssize_t))
    10.    {
    11.       cpp_error (pfile, CPP_DL_ERROR, "%s is too large", file->path);
    12.       return false;
    13.    }
    14.  
    15.       size = file->st.st_size;

    Комментарии 15

      +4
      # (Anyone with
      # a single source file bigger than 2GB needs to rethink
      # their coding style.

      Кто-нибудь с таким встречался?
        +12
        ну в этом по идее и есть тонкий юмор :)
          +1
          Видел ексель файл на 1 гиг с одним листом заполненым данными на 50000 строк.
          Думаю если кто то постоянно строки вставляет копи пастом по страниц 200 + хтмл какой нить + весь проект, то за 4 года может файл исходник так разрастись имхо…

          но помоему никто не творит такого…
            0
            очень даже просто такой файл мог быть получен при экспорти данных в excel-файл с какого нибудь разросшегося проекта
              0
              Все проще, если файл не в режиме монопольного доступа то при частом его обновлении через шаровые папки он разрастается историей изменений.
              +4
              надо разделять понятия «данные» и «программа». я видел файл с данными размером 10Гб — это был HD-фильм :) конечно, 1гб в экселе — это _не_ нормально, но, тем не менее, гораздо лучше, чем 1гб исходного кода на Си.
              +1
              Всегда удивлялся, на сколько дальновидными бывают программисты. Это и представить-то сложно, а предвидеть…
                0
                Теоретически придумать могу. Засунуть например данные в код. Не помню то ли в Java толи в С# было ограничение на размер файла, а мне хотелось засунуть туда таблицу калибровочных данных, долго плевался.
                +59
                Это еще что… я в проекте нашел

                // Напутствие потомкам (присно следовать да блюсти строжайше): ручная
                // правка автоматически сгенерированного кода не доведёт до добра. Коли
                // вас, несчастных да умом обделённых, не пущают к генератору, или же
                // история не сохранила и руин оного, то ничего вам не остаётся, кроме
                // как главою бить о сруб светлицы да отраву пить. Сочувствую, коли
                // вам выпала сия доля, но чем-либо облегчить вашу участь не в моей
                // власти. Да пребудет с вами сила.

                Так и вышло — генератор был утерян. Отраву пил, сайт переделывал.
                  +1
                  go to bash :)
                  не публиковали? такое нельзя держать в себе. надо делиться и не только здесь :)))))))
                  мое ИХМО.
                    +3
                    Или на It-happens?
                      0
                      на ibash
                  0
                  хмм теоретически можно получить большой исходный файл если кодировать ресурсы в исходный код. В той же Qt есть утилита, которая превращает бинарные данные в массивы, чтобы хранить ресурсы программы в коде. Хотя понятно что это имеет смысл лишь когда эти ресурсы не столь уж большие, 2 гига явный перебор =)

                  а про кодинг стайл — стараюсь в проекте не допускать более двух файлов длиной тысячу строк. Да и эти можно было бы значительно сократить при должном рефакторинге.
                    0
                    Я когда то заганял некоторые данные прямо в код. Но если не сделать специально отдельную секцию, в Windows например обычно загрузит весь бинарник в память. Я тут подумал в GameDev-е иногда может возникнуть потребность загнать и больше, хотя конечно редко без этого нельзя обойтись подгрузкой из файла.
                      +2
                      В GameDevе 2 гига только из файла ресурсов. А не то скачивание патчей и апдейтов убьет нахрен все сервера поддержки.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое