나는 이것이 EINTR
소위 인터럽트 가능한 시스템 호출에 의해 반환될 수 있는 오류라는 것을 알고 있습니다. 내 질문은 EINTR을 유발하는 신호가 어디에서 오는가입니다.
Python으로 작업할 때 종종 이 문제에 직면합니다 fnctl
. ctrl
+ 와 같은 인터럽트 명령을 실행하지 않았습니다 c
.
답변1
시스템 호출이 EINTR을 반환하도록 하는 신호는 일반적으로 신호가 나오는 곳에서 나옵니다. 설명하는 동작은 신호 처리기가 포착한 신호로 인해 발생할 수 있습니다.
귀하의 질문에 대한 나의 해석은 원인을 찾을 수 없는 신호에 의해 차단 시스템 호출이 중단되는 특정 상황이 있다는 것입니다. 단서로 이러한 신비한 신호는 일반적으로 fcntl 시스템 호출을 사용할 때 발생한다고 썼습니다. fcntl 시스템 호출은 파일 시스템의 변경과 같은 이벤트 프로세스를 알리는 데 사용될 수 있습니다. 이러한 이벤트는 신호로 보고됩니다. 귀하의 코드가 무엇을 하는지 이해하지 못하면 더 구체적인 답변을 드릴 수 없습니다. fcntl을 어떤 용도로 사용하고 있는지 확인하세요.