1

我见过这样的代码:

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

这个想法是重试系统调用,如果它因为被中断而失败。但这是个好主意吗?什么时候是个好主意,什么时候不应该这样做?这是否特定于某些平台,或者 WindowsUnix 系统调用是否会因 EINTR 而失败?如果我正在尝试编写跨平台代码,我应该怎么做?

4

0 回答 0