Как я могу получить gcc для записи файла размером более 2.0 ГБ?

Существует много файловых менеджеров, которые вы можете использовать с Ubuntu.

Вот сайт, в котором перечислены 20 из них и как их установить.

7
задан 14 January 2011 в 12:48

33 ответа

У меня была такая же проблема - не удалось написать файл размером более 2 ГБ. Моя ОС была 64 бит, точка монтирования была jfs2, а мой fsize = -1. Все, что я сделал, это изменение fopen в моей программе на fopen64 и voila!

0
ответ дан 10 August 2018 в 10:21

Простой #define кажется, что - все, что необходимо .. (программа записывает прошлое 2 ГБ сейчас.)

Возможно, причина, по которой она не была скомпилирована, заключается в том, что я скомпилировал одну программу из гораздо большего набора («xxd» является частью «vim») ...

Если бы я скомпилировал «vim», это, скорее всего, сработало нормально. ..

Таким образом, для всех, кто приходит на эту страницу, может иметь значение следующее: я предполагаю, что аналогичные настройки применимы и к другим IDE.

  Добавление #defines * Использование CodeBocks (как глобальная настройка) ============================  ========= Компилятор настроек и отладчик ... [Параметры компилятора] [#defines] ... Добавьте следующий _FILE_OFFSET_BITS = "64" * Использование CodeBlocks (для данного проекта) ======  =========================================================================================================================================================================================================================================================================  = "64" * Непосредственно в командную строку gcc ==================================  Добавьте #define прямо в исходный код =================================== #define _FILE_OFFSET_BITS 64  

Кроме того, я обнаружил этот фрагмент при поиске в Google для решения ... Какие макросы предопределены gcc? ... в терминале:

  • touch foo.h; cpp -dM foo.h
4
ответ дан 13 August 2018 в 16:46
  • 1
    Еще короче: cpp -dM / dev / null – Kees Cook 15 January 2011 в 09:05
  • 2
    cpp -dM & lt; Enter & gt; & lt; Ctrl & gt; D ... Вы заставили меня задуматься о том, что / dev / null делает adcually здесь ... и я думаю, что теперь я также понимаю, что происходит с cpp .. Он должен быть добавлен эти #defines для всех заданий, которые он обрабатывает, и в этом случае терминал получает этот вывод вместо следующего инструмента в трубе; имеет смысл ... Нет никакой магии .. на самом деле это только единицы и нули ... но это, безусловно, может выглядеть как магия. :) ... – Peter.O 15 January 2011 в 14:18

У меня была такая же проблема - не удалось написать файл размером более 2 ГБ. Моя ОС была 64 бит, точка монтирования была jfs2, а мой fsize = -1. Все, что я сделал, это изменение fopen в моей программе на fopen64 и voila!

0
ответ дан 13 August 2018 в 16:46
  • 1
    fopen является псевдонимом fopen64 на 64-битных платформах. – David Foerster 17 May 2017 в 19:12

Другие вопросы по тегам:

Похожие вопросы: