2011-04-13 56 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更容易。您可以使用普通的命令解釋器,並將系統名稱作爲正常複製或重複命令的目標文件名稱的一部分。