我有一个 C 应用程序,它为输入命令提供了一个“shell”。我正在尝试为应用程序编写一些自动化测试代码(使用 CUnit)。从标准输入读取“shell”输入,如下所示:
fgets(buf, sizeof(buf), stdin);
我可以通过 freopen()'ning stdin 将命令自动“写入”到应用程序并将其连接到中间文件。当应用程序“正常”执行时,fgets() 调用会阻塞,直到字符可用,因为它是“交互式设备”,但在中间文件上则不然。那么我怎样才能假装 fgets 认为中间文件是一个“交互式设备”。
C 程序适用于使用 MinGW 编译的 Windows (XP)。
问候!