Что означает первый байт каждого набора записей при загрузке 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 ответ
Первый байт переменной блочной записи - это длина записи, так что вы видите