如何检查stdin缓冲区是否包含一些数据?

我正在尝试使用C可编程套接字开发聊天应用程序。 我需要检查stdin缓冲区是否有一些值,以便将消息发送到客户端/服务器并接收它。 但我不知道如何检查stdin缓冲区的值。 请帮忙。

你想要select(2,3p)

在POSIX系统中,你可以做一些事情:

 FD_ZERO (&rset); FD_SET (fileno (stdin), &rset); maxfd = fileno (stdin); tv.tv_sec = 3; tv.tv_usec = 0; select (maxfd + 1, &rset, NULL, NULL, &tv); 

这可能有所帮助

select()使您能够同时监视多个套接字。 它会告诉你哪些已准备好阅读,哪些已准备好写入,以及哪些套接字引发了exception,如果你真的想知道这一点。

Beej的网络编程指南有一个很好的,易于讨论的讨论。