Nói nhỏ làm nền
EINTR
là lỗi mà cái gọi là các cuộc gọi hệ thống ngắt có thể quay trở lại. Nếu tín hiệu xảy ra trong khi cuộc gọi hệ thống đang chạy, tín hiệu đó không bị bỏ qua và trình xử lý tín hiệu được xác định cho nó mà SA_RESTART
không được đặt và trình xử lý này xử lý tín hiệu đó, thì cuộc gọi hệ thống sẽ trả về EINTR
mã lỗi.
Là một lưu ý phụ, tôi đã gặp lỗi này rất thường xuyên sử dụng ncurses
trong Python.
Câu hỏi
Có một lý do đằng sau hành vi này được quy định bởi tiêu chuẩn POSIX không? Người ta có thể hiểu rằng có thể không thể tiếp tục (tùy thuộc vào thiết kế kernel), tuy nhiên, lý do nào để không tự động khởi động lại ở cấp độ kernel? Đây là vì lý do di sản hoặc kỹ thuật? Nếu điều này là vì lý do kỹ thuật, những lý do này vẫn còn hiệu lực ngày nay? Nếu điều này là vì lý do di sản, thì lịch sử là gì?