2011-04-13 53 views
1

我想将文件传输到串联HP/Non-Stop环境。使用C进程将记录写入文件,然后使用另一个C进程读取这些进程。以二进制模式FTP'ing结构化文件

该文件本身包含一些使用标准文本编辑器无法读取的记录。我想这意味着要正确传输文件,我需要在二进制模式下传输它。以二进制模式尝试传输会产生以下错误。

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'd? FTP程序迫使我使用ASCII模式。

第二个错误是什么? (即“相对文件记录长度>最大记录长度”)

回答

0

您的文章并没有完全说,但它听起来像是你是从惠普的NonStop到HP的NonStop FTP发布,和你的源文件“结构化的”。您需要知道,在NonStop环境中,“结构化文件”具有特定含义:该文件与在* nix或MS-DOS系统上找到的一种文件不同(在NonStop上称为非结构化文件) 。结构化文件不是一个字节数组,但有记录边界,还有其他特征,其中一些特征类似于SQL表的特征。

FTP通常适用于非结构化文件,但对于结构化文件,您可能需要用额外的参数来愚弄。 (FTP NonStop扩展是关于在NonStop的系统软件中发现的最糟糕的设计,遗憾的是,对您而言)。基本上,您需要使用put命令中的参数和参数之后的属性,从结构化文件类型开始(即“e” “k”或“r”)以及其他属性。这告诉FTP您正在传输结构化文件。您可能需要检查手册以获得正确的语法。尽管有二进制数据,但您仍然需要使用“ASCII模式”。

(“相对文件记录长度”错误可能是由于未能执行结构化文件传输所致,如果源文件是相对结构化的文件,则使用文件类型“r”(代表Relative) )

但是,如果两个系统都是NonStop,它们通常会使用“扩展”网络(例如通过IP)联网,然后复制文件比使用FTP更容易。您可以使用普通的命令解释器,并将系统名称作为正常复制或重复命令的目标文件名称的一部分。