我正在实现一个使用两个线程的客户端:一个从服务器接收数据并将其打印到stdout,另一个使用fgets向用户询问字符串并向服务器发送消息。线程总是在执行,但有一个问题:我不知道如何停止从用户输入的线程。我尝试用fclose关闭stdin,但流保持打开,直到用户数字一个字符串。如何关闭输入缓冲区的方式是fgets被中断了吗? 我希望这个问题很清楚。
答案 0 :(得分:0)
信号可以中断I / O操作。假设您没有为sigaction信号处理程序使用SA_RESTART标志,则读取将返回错误的EINTR。