Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在实现一个使用两个线程的客户端:一个从服务器接收数据并将其打印到标准输出,另一个使用 fgets 向用户询问字符串并向服务器发送消息。线程始终在执行中,但有一个问题:我不知道如何停止从用户那里获取输入的线程。我尝试用 fclose 关闭标准输入,但流保持打开状态,直到用户输入一个字符串。如何关闭输入缓冲区以某种方式 fgets 被打断? 我希望这个问题很清楚。
信号可以中断 I/O 操作。假设您没有将 SA_RESTART 标志用于 sigaction 信号处理程序,则读取将返回 EINTR 的 errno。