EINTRを引き起こす信号はどこから来ますか?

EINTRを引き起こす信号はどこから来ますか?

私はこれがいわゆるEINTR割り込み可能なシステムコールによって返される可能性があるエラーであることを知っています。私の質問は、EINTRを引き起こす信号がどこから来るのかということです。

Pythonで作業するときは、この問題に直面しますfnctlctrl+などの割り込みコマンドを実行していませんc

答え1

システムコールがEINTRを返すようにする信号は、通常、信号が出てくるところから来ます。説明する動作は、シグナルハンドラがキャプチャした信号によって引き起こされる可能性があります。

あなたの質問についての私の解釈は、原因が見つからない信号によってブロックシステムコールが中断される特定の状況があることです。手がかりとして、これらの不思議なシグナルは通常、fcntlシステムコールを使用したときに発生すると書かれています。 fcntl システムコールは、ファイルシステムの変更などのイベントプロセスを通知するために使用できます。これらのイベントはシグナルとして報告されます。あなたのコードが何をしているのかわからない場合は、より具体的な回答を提供することはできません。 fcntlをどのような用途に使用しているか確認してください。

関連情報