gpt4 book ai didi

c - 单元测试错误条件 - EINTR

转载 作者:太空狗 更新时间:2023-10-29 17:06:34 25 4
gpt4 key购买 nike

简而言之,您如何对系统调用中的 EINTR 等错误条件进行单元测试。

我正在处理的一个特定示例(它本身可能就是一个案例)是当 fclose 返回带有 (errno==EINTR) 的 EOF 时是否有必要再次调用 fclose。行为取决于 fclose 的实现:

// Given an open FILE *fp
while (fclose(fp)==EOF && errno==EINTR) {
errno = 0;
}

如果在 EINTR 发生时 fp 被释放,这个调用可能是不安全的。如何测试 when (errno==EINTR) 的错误处理?

最佳答案

在这种特殊情况下,再次调用 fclose() 是不安全的,因为 C 标准规定即使调用失败,流也会与文件分离(并且变得不确定)。

关于c - 单元测试错误条件 - EINTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/176512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com