シグナルがシステムコールの実行を妨げる可能性があるかどうかはどうすればわかりますか?

シグナルがシステムコールの実行を妨げる可能性があるかどうかはどうすればわかりますか?

Linuxプログラミングインターフェースから

信号は次のいずれかに送信されます。

  • 前のタイムアウト後(つまりタイムスライスの開始時に)プロセススケジュールが変更された場合
  • システムコールが完了したとき(シグナル転送によってブロックシステムコールが早期に完了する可能性があります)

シグナルがシステムコールの実行を妨げる可能性があるかどうかはどうすればわかりますか?

どのシステムコールが中断される可能性がありますか?つまり、早期に終了することはできますか?どの信号によって発生しますか?

どのシステムコールがどの信号によって中断できないのですか?

ありがとうございます。

答え1

Mosvyさんがコメントした内容は次のとおりです。

  • シグナルによって中断される可能性のあるシステムコールは、再起動できるかどうかにかかわらず、signal(7)マンページの「中断と...」セクションにリストされています。

  • シグナルによって中断できないシステムコールはリストされません。

関連情報