I have the following batch script:
dir | myapp.exe
这个程序的源代码(或多或少)如下:
procedure TForm1.FormCreate(Sender: TObject);
var buff: String;
begin
Read(buff);
Memo1.Lines.Text:=buff;
end;
在备忘录中的输出结果是:
驱动器 C 中的卷没有标签。
我尝试过:
- 将读取部分放入一个循环中,以
eof
作为条件 - 但会导致无限循环 - 编写一个循环,一直读取,直到
strlen(buff)
为 0 - 却出现了第二次退出的情况 - 每隔 0.5 秒读取一些东西(我考虑异步写入 stdin),但也失败了
顺便说一下,直接运行程序而不输入 stdin 数据会导致 EInputOutput 异常(I/O 错误)代码 6。
Count < sizeOf(Buffer)
吗? - Christian