2

我正在实现一个使用两个线程的客户端:一个从服务器接收数据并将其打印到标准输出,另一个使用 fgets 向用户询问字符串并向服务器发送消息。线程始终在执行中,但有一个问题:我不知道如何停止从用户那里获取输入的线程。我尝试用 fclose 关闭标准输入,但流保持打开状态,直到用户输入一个字符串。如何关闭输入缓冲区以某种方式 fgets 被打断?
我希望这个问题很清楚。

4

1 回答 1

0

信号可以中断 I/O 操作。假设您没有将 SA_RESTART 标志用于 sigaction 信号处理程序,则读取将返回 EINTR 的 errno。

于 2012-07-19T23:19:57.413 回答