我使用redmon重新定向postscript到德爾福進行處理。Redmon&捕獲stdin與德爾福
我使用下面的代碼讀取標準輸入到一個文件:
var
Stdin: THandleStream;
FStream: TFileStream;
BytesRead:Int64;
Buffer: array[0..1023] of Byte;
StdIn := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE));
try
tempps:=GetTempFile('.ps');
FStream:=tfilestream.Create(tempps,fmCreate or fmOpenReadWrite);
StdIn.Seek(0,0);
try
repeat
BytesRead:=StdIn.Read(Buffer,1024);
FStream.Write(Buffer,BytesRead);
until bytesread<SizeOf(Buffer);
finally
InputSize:=FStream.Size;
FStream.Free;
end;
finally
StdIn.Free;
end;
這適用於大多數情況下,除了一個在雷德曼日誌文件顯示:
REDMON WritePort: OK count=65536 written=65536
REDMON WritePort: Process not running. Returning TRUE.
Ignoring 65536 bytes
的事實是, 65536只是一個紅色的鯡魚,這是我沒有正確地閱讀標準輸入,或者有一些我曾經忽視的地方有一些奇怪的限制嗎?
在此先感謝。
編輯1
的65536是一個紅鯡魚 - 雷德曼打印此消息每次64K在日誌中,整個文件就是688759個字節,然而這看起來像雷德曼年初關閉輸出,但隨後仍繼續輸出反正更多的文字。
時間對一些基本的調試。你的流程是否運行?如果是這樣,它讀取了多少數據?它應該讀多少? Redmon是否經常生成* 64 * KB的數據? –
請爲我們解釋redmon日誌。 –