1

私はこのようなコードを見てきました:

again:
    if ((fp = fopen(filename, "r")) == NULL) {
        if (errno == EINTR)
            goto again; // just an interrupted system call
        // handle other errors
    }

システムコールが中断されたために失敗した場合、システムコールを再試行するという考え方です。しかし、それは良い考えですか?いつそれが良いアイデアで、いつこれを行うべきではないのですか? これは特定のプラットフォームに固有のものですか? それとも、WindowsまたはUnix でシステム コールが EINTR で失敗する可能性がありますか? クロス プラットフォーム コードを記述しようとしている場合はどうすればよいですか?

4

0 に答える 0