等待回车键的一种方法是调用std::ignore()。但是,当我使用nohup std::ignore()时总是立即返回。是否有另一种方法来等待一个超级用户,或者只是返回,这将与工作?

最佳答案

当您使用nohup运行命令时,它会将命令的标准输入连接到/dev/null,因此无法等待任何类型的按键。
当您尝试从/dev/null读取时,它会自动用eof响应。
我想可以使用以下代码检查(未测试):

#include <unistd.h>
...
if (isatty(fileno(stdin))) ...

这应该有效,因为标准保证std::cin与stdin相关。

关于c++ - nohup和std::ignore()不能一起工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40980485/

10-14 06:44