2

サーバーからデータを受信して​​標準出力に出力するスレッドと、fgets を使用してユーザーに文字列を要求し、サーバーにメッセージを送信するスレッドの 2 つのスレッドを使用するクライアントを実装しています。スレッドは常に実行されています。しかし、問題があります。ユーザーからの入力を受け取るスレッドを停止する方法がわかりません。fclose で stdin を閉じようとしましたが、ユーザーが文字列を数字で入力するまでストリームは開いたままです。入力バッファを閉じる方法はありますかfgets が中断されるような方法で?
質問が明確であることを願っています。

4

1 に答える 1

0

信号はI/O操作を中断する可能性があります。sigactionシグナルハンドラーにSA_RESTARTフラグを使用しなかったとすると、読み取りはEINTRのerrnoで返されます。

于 2012-07-19T23:19:57.413 に答える