Книга: Linux глазами хакера

10.1.3. Передача файлов

10.1.3. Передача файлов

Так как протокол FTP предназначен для работы с разными системами, то для передачи файлов используются два основных режима — текстовый (ASCII) и бинарный.

Допустим, что вы хотите переслать текстовый файл с компьютера Unix на компьютер Windows. В Unix для текстовых файлов в качестве идентификатора конца строки используется символ <CR> (Carriage Return, возврат каретки, код 13). В Windows то же самое обозначается двумя символами <CR> и <LF> (Line Feed, перевод строки, код 10). Если после передачи открыть в Windows этот текстовый файл, то все строки сольются в одну, потому что нет символа <LF>.

На рис. 10.2 показан файл sendmail.cf (используется для конфигурации сервиса Sendmail), скаченный с Linux-сервера в бинарном режиме и открытый в программе Windows Notepad. Как видите, очень тяжело разобрать, что здесь и для чего, а вместо перехода на новую строку можно увидеть нечитаемый символ <CR> в виде квадрата.


Рис. 10.2. Файл sendmail.cf, полученный с Linux-сервера в бинарном режиме

Чтобы решить проблему конца строки, необходимо скачивать файл с сервера в символьном (ASCII) режиме. В этом случае текст передается построчно, и ОС-получатель сама добавляет нужные символы перевода строки. На рис. 10.3 можно увидеть файл sendmail.cf, полученный с сервера в ASCII- режиме. Теперь информация стала читабельной, и все символы перехода на новую строку расставлены самой ОС верно, в соответствии со своими внутренними правилами.


Рис. 10.3. Файл sendmail.cf, полученный с Linux-сервера в ASCII-режиме

Бинарные файлы (например, картинки или музыку) необходимо передавать в двоичном режиме. Здесь нет различий, в какой ОС создан объект, и он будет правильно воспринят в любой операционной системе, умеющей работать сданным форматом.

Если передать двоичный файл из Linux в Windows в текстовом режиме, то любой символ <CR> (а он может встретиться и в двоичном файле) будет заменен на пару символов <CR> и <LF>, и после этого бинарный файл может стать нечитаемым.

Оглавление книги


Генерация: 1.406. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз