Структурированные файлы FTP в двоичном режиме - PullRequest
1 голос
/ 13 апреля 2011

Я пытаюсь отправить файл по FTP в среду Tandem HP / Non-Stop.Записи записываются в файл с использованием процесса Си, а затем читаются с использованием другого процесса Си.

Сам файл содержит некоторые записи, которые невозможно прочитать с помощью стандартного текстового редактора.Я понял, что это означает, что для правильной передачи файла мне нужно было передать его в двоичном режиме.Попытка передачи в двоичном режиме приводит к следующим ошибкам.

ftp> bin
200 Type set to I.
ftp> put SM11098
200 PORT command successful.
553 Error: Structured file transfer only allowed in Ascii mode,
ftp> ascii
200 Type set to A.
ftp> put SM11098
200 PORT command successful.
150 Opening data connection for SM11098 (10.220.98.237,4078d).
552 SM11098: Relative file record length > Maximum record length
ftp: 1576960 bytes sent in 4.08Seconds 386.70Kbytes/sec.

Я пытался погуглить вышеуказанные ошибки, но ничего не вышло.Для меня структурированный файл звучит как двоичный файл, содержащий структурированные записи.Разве это не должно быть FTP в двоичном режиме?Программа FTP вынуждает меня использовать режим ASCII.

Для чего вторая ошибка?(т. е. «Относительная длина записи в файле> Максимальная длина записи»)

1 Ответ

0 голосов
/ 14 июня 2011

Ваше сообщение не совсем говорит, но звучит так, как будто вы FTP из HP-NonStop в HP-NonStop, и ваш исходный файл "структурирован". Вы должны знать, что в среде NonStop «структурированный файл» имеет определенное значение: файл отличается от файла одного типа, обнаруженного в системах * nix или MS-DOS (которые называются неструктурированными файлы на NonStop). Структурированные файлы не являются массивом байтов, но имеют границы записей и, возможно, другие характеристики, некоторые из которых аналогичны характеристикам таблиц SQL.

FTP работает нормально для неструктурированных файлов, но для структурированных файлов вам, вероятно, придется дурачиться с дополнительными параметрами. (Расширения FTP NonStop относятся к худшему дизайну, найденному в системном программном обеспечении NonStop, к сожалению для вас.) В основном вам нужно использовать атрибуты после параметров и в вашей команде put, начиная со структурированного типа файла (который является "e "," k "или" r ") и, возможно, другие атрибуты. Это говорит FTP, что вы переносите структурированный файл. Возможно, вам придется проверить руководство, чтобы получить правильный синтаксис. Для этого вам нужно будет использовать «режим ASCII», несмотря на наличие двоичных данных.

(Ошибка «Относительная длина записи файла», вероятно, связана с невозможностью передачи структурированного файла. Использование типа файла «r» (что означает «Относительный») будет целесообразным, если исходный файл является относительным структурированным файлом. ) * +1010 *

Однако, если обе системы являются NonStop, они, как правило, объединяются в сеть с использованием сети «Expand» (например, через IP), и тогда копирование файла проще, чем с использованием FTP. Вы бы использовали обычный интерпретатор команд и просто поместили бы имя системы как часть имени файла назначения обычной копии или дублирующейся команды.

...