我有一个问题,当我在 Bash 脚本文件中运行程序时,select() 没有超时。这是我的实现:
#include <sys/select.h>
bool checkKeyPressed()
{
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
fd_set descriptor;
const int input = 0;
FD_ZERO(&descriptor);
FD_SET(input, &descriptor);
return select(1, &descriptor, NULL, NULL, &tv) > 0;
}
// 直接运行程序后的strace结果(修正有超时)
select(1, [0], NULL, NULL, {1, 0}) = 0 (Timeout)
// strace 结果以在 bash 脚本文件中运行应用程序(无超时)
select(1, [0], NULL, NULL, {1, 0}) = 1 (in [0], left {0, 999996})
read(0, "", 1) = 0
如何更改函数以使其在 Bash 脚本下运行?