md5sum команда двоичный и текстовый режим

Команда GNU md5sum имеет два режима: двоичный и текстовый . Я думаю, разница заключается только в том, как обрабатываются символы новой строки? Я прав?

В GNU / Linux оба режима всегда дают одинаковый результат, поэтому единственное использование опций -b и -t – указывать флаг ( * или ) используется до имени файла?

В каких обстоятельствах режимы могут давать разные результаты? В системах Windows / MacOS? (Версии для этих платформ доступны?)

  • Как извлечь «foo» из «foo-bar-baz» в bash?
  • замените блок текста содержимым файла
  • сравнить два файла и получить данные
  • Как я могу найти и установить pacman-color или справиться?
  • Почему § разрешает мне удалять два символа в bash promt?
  • Преобразование файла UTF-8 в ASCII (наилучшее усилие)
  • Поиск файлов, содержащих символы, отличные от ASCII
  • Как добавить текст с возможностью поиска к изображению?
  • One Solution collect form web for “md5sum команда двоичный и текстовый режим”

    В GNU / Linux оба режима всегда дают одинаковый результат

    Да, прямо. От man md5sum :

    Примечание: нет разницы между двоичным и текстовым режимами в системе [sic] GNU.

    Это из реализации md5sum которая поставляется с GNU coreutils 8.21; Я замечаю, что более старая версия (8.12) не имеет этого уведомления, но я предполагаю, что все равно будет правдой.

    Хотя AFAICT md5sum официально не стандартизирован (например, POSIX), он доступен на разных платформах в различных реализациях, и, очевидно, есть некоторые попытки сделать их совместимыми друг с другом для удобства использования в разных системах.

    В связи с этим стандарт ISO / ANSI C включает в себя функции потока высокого уровня для доступа к файлам. Как часть стандарта, они доступны в любой операционной системе, которая реализует ISO C через общую библиотеку или компилятор. Поскольку почти все операционные системы имеют это доступное (и сами чаще всего пишутся на языке C), это своего рода универсальный язык, используемый для реализации потенциально очень портативного программного обеспечения.

    Учитывая то, что он делает, было бы вполне возможно написать md5sum который будет компилировать и работать в любой операционной системе. Я не утверждаю, что это относится к версии GNU coreutils, но одна из функций потока файлов высокого уровня, упомянутых ранее, – fopen() , которая обязана ISO C включать b переключатель, используемый при открытии файла, чтобы указать, что он открыт "как двоичный файл". То, что это может означать или требует от системы , не предусмотрено стандартом, оно просто необходимо для существования, поэтому его можно использовать в системе, где может быть какая-то ( любая ) причина для этого.

    Подобной причины нет в операционных системах linux / POSIX / * nix, поэтому коммутатор ничего не делает. Из спецификации POSIX (надмножество ISO C) для fopen () :

    Символ «b» не должен иметь эффекта, но допускается для стандартного соответствия ISO C.

    Таким образом, полностью переносимая реализация md5sum может использовать функции потока файлов высокого уровня ISO, поскольку нет других способов доступа к файлам в ISO C (большинство платформ, включая жалобы POSIX, также имеют свои методы более низкого уровня, но используя эти не будут переносимыми, потому что они не соответствуют ISO C), и он также должен реализовать флаги -b и -t чтобы добавить или не добавить параметр b для fopen() при чтении файла. В системах, где это бессмысленно, это не будет иметь никакого значения.

    Опять же, я не говорю о том, что md5sum GNU написан таким совершенно переносимым способом или является производным от того, который есть, но, очевидно, он пытается выполнить в своей работоспособности тот, который есть. Обратите внимание, что наличие флага, который ничего не делает, не совпадает с флагом – в первом случае он указан в порядке, но ничего не делает, тогда как в последнем случае использование может быть ошибкой или привести к неопределенному поведению ,

    Interesting Posts

    Существует ли способ, которым злоумышленник может использовать mkdir для компрометации системы?

    Как настроить пространство подкачки после установки системы?

    Интернет медленно на Fedora 23

    Список системных вызовов, используемых в приложении

    debian широкополосный беспроводной выход

    Параметры Bash – Split

    Unix – подсчет уникальных IP-адресов, сортировка их по частоте и сортировка по IP, когда количество повторений одинаково

    iptables трафик трафик на определенный внешний ip на другой локальный IP вместо этого и возвращать ответы с внешним ip как источник

    grep рекурсивно назад

    Как я могу увидеть историю команды «at» в AIX?

    Перемещение загрузочного диска в хранилище SAN на Solaris 10

    Как установить apt-get или YUM в Mac OS X

    Как (или это возможно) Linux-сервер X-Server от терминала под именем SU otherusername

    как связать AltGr с <Ctrl> + <Alt>

    Почему это добавляет пробелы? echo "x ax" | sed 's / x \ s * / x /'

    Linux и Unix - лучшая ОС в мире.