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

时间:2010-10-20 04:25:04

标签: c

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

3 个答案:

答案 0 :(得分:1)

您想要select(2,3p)

答案 1 :(得分:1)

在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);

答案 2 :(得分:0)

这可能会有所帮助

  
    

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

  

Beej's Guide to Network Programming有一个很好的,易于理解的讨论。