Что означает первый байт каждого набора записей при загрузке a v(b)-файла из z/OS через FTP с использованием "TYPE E" и "MODE B"

Сейчас я пытаюсь загрузить и загрузить файлы с переменной длиной записи с мэйнфрейма IBM под управлением zOS 2.1. Как этот парень: Как FTP файл переменной длины из Linux в мейнфрейм z/OS

curl --user "******" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" | hexdump

0000000 dead cafe babe
0000006


curl --user "******" --quote "site RDw" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" | hexdump
0000000 000a 0000 dead cafe babe
000000a

Выглядит хорошо. Rdw - это "000a 0000" и рекорд "мертвое кафе, детка". Но. Если я загружу его снова - даже при использовании "quote site RDw" сервер проигнорирует RDW и сохранит его как часть фактических данных.

curl --user "******" --quote "site RDw" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" > SOME.FILE.NAME
cat SOME.FILE.NAME | curl --user "******" --upload-file "-" --quote "site RDw" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'"
0000000 000c 0000 0008 0000 dead beef
000000c

Так как это не то, что я хотел, я искал еще немного. И - я нашел эту статью: http://www-01.ibm.com/support/docview.wss?uid=swg21188301

И дал ему еще одну попытку.

curl --user "******" --quote "TYPE E" --quote "MODE B" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" | hexdump
0000000 4000 04de adbe ef00
0000007

Это выглядело интересно. Поэтому я сравнил его с другим файлом, содержащим больший набор данных...

0000000 4002 cbdc...
00002ce

И еще один...

0000000 8000 16f0...
0000019 4000 16f0...
0000032

Мое первое впечатление: 80, кажется, указывает на то, что будет больше наборов данных, тогда как 40 указывает на последний. Это казалось правдой для каждого файла, который я пробовал. Для обычного файла с переменной длиной записи, а также для заблокированного файла с переменной длиной записи.

Поэтому я попытался загрузить его снова...

curl --user "******" --quote "TYPE E" --quote "MODE B" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'" > SOME.FILE.NAME
cat SOME.FILE.NAME | curl --user "******" --upload-file "-" --quote "TYPE E" --quote "MODE B" --verbose --silent --show-error "ftp://themainframe/'SOME.FILE.NAME'"

И, казалось, сработало

Ну, по крайней мере, теперь я могу передавать файлы с переменной длиной записи с и на мэйнфрейм, сохраняя при этом длину записи.

Но - и вот в чем вопрос: является ли первый байт каждой записи "только" индикатором того, будет ли больше наборов данных? Или я что-то упустил?

1 ответ

Первый байт переменной блочной записи - это длина записи, так что вы видите

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