C++ 投票标准和其他FD
您好,我想监视来自libssh连接api的FD。但也希望监视STDIN,并解析来自STDIN的命令C++ 投票标准和其他FD,c++,unix,C++,Unix,您好,我想监视来自libssh连接api的FD。但也希望监视STDIN,并解析来自STDIN的命令 我可以使用C++中的投票。 < P>不在标准C++中,它没有FD或 PORE()/。但是在UNIX(POSIX)上, STDIN < /C>是一个有效的FD值0。 < P>不在标准C++中,它没有FD或 PORE()/。但是在unix(POSIX)上,stdin是一个值为0的有效FD。在阅读功能列表之前,我没有使用过libssh,它告诉我它完全支持轮询。 因此,您应该能够poll()来直接监视ss
我可以使用C++中的投票。
< P>不在标准C++中,它没有FD或<代码> PORE()/<代码>。但是在UNIX(POSIX)上,stdin
是一个值为0的有效FD。在阅读功能列表之前,我没有使用过libssh,它告诉我它完全支持轮询。
因此,您应该能够poll()来直接监视ssh连接和STDIN文件描述符
e、 g.为输入轮询stdin,例如
int timeout = 100; // wait 100ms
struct pollfd fd;
fd.fd = STDIN;
fd.events = POLLIN;
fd.revents = 0;
int ret = poll(&fd, 1, timeout);
if (ret > 0 && (fd.revents & POLLIN != 0)) {
// got some data
} else {
// check for error
}
poll的第一个参数是一个“struct pollfd”数组。我只指定了长度为1(第二个参数)。但是,您可以使用要监视的阵列中包含的来自libssh的其他文件描述符,根据需要分配任意数量的阵列。在读取功能列表告诉我它具有完全轮询支持之前,我还没有使用libssh。 因此,您应该能够poll()来直接监视ssh连接和STDIN文件描述符 e、 g.为输入轮询stdin,例如
int timeout = 100; // wait 100ms
struct pollfd fd;
fd.fd = STDIN;
fd.events = POLLIN;
fd.revents = 0;
int ret = poll(&fd, 1, timeout);
if (ret > 0 && (fd.revents & POLLIN != 0)) {
// got some data
} else {
// check for error
}
poll的第一个参数是一个“struct pollfd”数组。我只指定了长度为1(第二个参数)。但是,您可以使用要监视的阵列中包含的libssh中的其他文件描述符,根据需要分配任意数量的阵列