Что делает ^ @^ @^, означают в текстовом файле?

При создании GIMP из источника можно добавить -Os к CFLAGS, чтобы сказать компилятору оптимизировать для пространства и не скорости выполнения. Это вызовет меньший объем потребляемой памяти.

Другая техника, если Вы запускаете одну программу только, состоит в том, чтобы использовать статическое подключение. Используя статическое подключение, двоичный файл встроит свои зависимости и может стать меньшим, так как это известно во время компиляции точно, которые кодируют фрагменты, достижимы и которые не являются. Обычно, библиотеки создаются динамично (.so файлы), и компилятор не может знать, какие функции будут позже использованы.

Эти методы вряд ли получат Вас любое значительное преимущество, хотя, так как Вы, вероятно, используете зависимости GIMP в других программах одновременно (т.е. GTK + 2). Если это так, статическое подключение заставит использование памяти повышаться существенно.

2
08.01.2014, 06:13
1 ответ

Когда когда-либо у Вас есть случайные символы в файле, можно включить в список помощь инструментов od или hexdump.

Примеры

Сначала мы покажем что восьмеричный дамп (od) шоу, когда мы говорим этому выводить содержание файла a.txt в шестнадцатеричном формате (-x).

передозировка

$ od -x a.txt 
0000000 3737 2036 6572 6f62 746f 370a 3737 0020
0000020 0000 0000 0000 0000 0000 0000 0000 0000
*
0000140 0000 0000 0000 0000 0000 0000 0000 6567
0000160 6e61 2079 652f 6374 662f 7473 6261 380a
0000200 3332 7220 6265 6f6f 2074 380a 3432 0020
0000220 0000 0000 0000 0000 0000 0000 0000 0000
*
0000320 7865 7469 000a
0000325

Мы можем использовать hexdump чтобы сделать что-то подобное, показывая данные в шестнадцатеричном формате, однако это также покажет значение символом ASCII, если это возможно.

hexdump

$ hexdump -C a.txt 
00000000  37 37 36 20 72 65 62 6f  6f 74 0a 37 37 37 20 00  |776 reboot.777 .|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 67 65  |..............ge|
00000070  61 6e 79 20 2f 65 74 63  2f 66 73 74 61 62 0a 38  |any /etc/fstab.8|
00000080  32 33 20 72 65 62 6f 6f  74 20 0a 38 32 34 20 00  |23 reboot .824 .|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000d0  65 78 69 74 0a                                    |exit.|
000000d5

При взгляде на вышеупомянутый вывод Вы заметите несколько последовательностей 00 00 00. Это те ^ символы, о которых Вы спрашивали первоначально.

Случайно символ 00 нулевой символ.

4
27.01.2020, 22:00
  • 1
    Но что они делают в файле? Как они добирались там? –  Mikhail Morfikov 08.01.2014, 10:40
  • 2
    , Они похожи на посторонние символы, которые стали включенными или когда Вы, где, поражая клавишу Backspace в командную строку или скопировать/вставить некоторой ранее команды выполнения, где дополнительные посторонние символы были случайно включены. Или управляющие символы от Вашей подсказки были включены, но были преобразованы в пустой указатель, так как они - непечатаемые символы. –  slm♦ 08.01.2014, 14:04
  • 3
    я пытался воспроизвести его на основе этого, что Вы говорите, но ничто, кажется, не работает. Возможно, действительно ли это - терминальный отказ? Я использую другой теперь. –  Mikhail Morfikov 08.01.2014, 15:44
  • 4
    Другие частые причины NULs в текстовом файле: 1. процесс, усеченный файл, в то время как другой процесс писал это, таким образом, записи второго процесса внезапно пошли мимо текущего EOF, таким образом, разрыв стал редко выделенным все-нулевым местом. 2. Файл был изменен незадолго до того, как системный катастрофический отказ и файловая система восстановили размер файла, не восстанавливая все данные. –   08.01.2014, 16:06
  • 5
    @WumpusQ.Wumbley - благодарит привести более возможные причины! –  slm♦ 08.01.2014, 16:23

Теги

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