如何在使用 popen() 时绕过 cmd 中的 y/n 个问题

How to bypass y/n questions in cmd while using popen()

今天我在我的程序中遇到了一个严重的错误,它只是一个小代码,它使用 popen() 传递命令并将其结果通过管道传输到我使用 fgets() 读取的文件描述符结果, date 命令的问题我的程序一直挂起(等待),原因是我们知道在发出 date 后它会显示当前日期并发出是或否的问题,如下所示.

The current date is: Fri 08/21/2015
Enter the new date: (mm-dd-yy)----this was shitting my code!!!!

我只想让我的程序跳过这个问卷。

注意:下面代码中的字符串"command"是我将从用户那里收到的。

FILE *in;
char buff[512];
string cmd;
command += " 2>&1";
if (!(in = popen(command.c_str(), "r"))) {
    status = "0"; // my logic don't bother:)
}
else {
    while (fgets(buff, sizeof(buff), in) != NULL) {
        cmd += buff;
    }
}

感谢 Petesh。

我已经改成2>&1<nul而不是2>&1,程序现在没有挂起, 此解决方案的关键是添加 <nul 给出一些默认值作为提示的答案。