单元测试错误条件 - EINTR

2024-03-06

简而言之,如何对系统调用上的错误条件(例如 EINTR)进行单元测试。

我正在研究的一个特定示例(这可能是一种单独的情况)是,当它返回带有 (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 标准表示,即使调用失败,流也会与文件解除关联(并变得不确定)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单元测试错误条件 - EINTR 的相关文章

  • 访问特征矩阵的行向量时复制或引用

    我正在使用的代码Eigen http eigen tuxfamily org index php title Main Page矩阵库 我注意到在整个代码中 有如下访问器 RowVector3f V size t vertex index
  • 为什么模板类的静态成员不唯一

    看一下下面的代码 include
  • 如何将动态数据写入 MVC 3 Razor 中的页面布局?

    我有带有 Razor 引擎的 MVC 3 C 项目 将动态数据写入 Layout cshtml 的方法和最佳实践是什么 例如 也许我想在网站的右上角显示用户名 该名称来自会话 数据库或基于用户登录的任何内容 更新 我也在寻找将某些数据渲染到
  • 基于多线程的 RabbitMQ 消费者

    我们有一个 Windows 服务 它监听单个 RabbitMQ 队列并处理消息 我们希望扩展相同的 Windows 服务 以便它可以监听 RabbitMQ 的多个队列并处理消息 不确定使用多线程是否可以实现这一点 因为每个线程都必须侦听 阻
  • 为什么下面的重叠比较总是评估为 true

    我不明白为什么以下代码有警告 指出重叠比较始终评估为真 接下来的语句永远不会被执行 QVariant MainModel data const QModelIndex index int role const if index isVali
  • 仅针对某些异常类型中断

    我知道异常处理是一件非常重要的事情 我们在所有项目中都在这样做 主要原因是记录客户发生的错误 这工作正常 根本不是问题 但是 当我仍在使用 Visual Studio 编码和运行应用程序时 我根本不需要任何异常处理 我希望调试器正好停在应用
  • C 中的双重否定:是否保证返回 0/1?

    Is x 标准保证返回0 1 请注意 我是not询问 C 其中定义了 bool 类型 是的 在 C99 中 请参阅 6 5 3 3 4 逻辑非运算符的结果 是0如果其操作数的值比较 不等于0 1如果其操作数的值比较等于 0 结果具有类型in
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • 在关键服务器上对字符串进行内存受限的外部排序,并合并和计算重复项(数十亿个文件名)

    我们的服务器生成如下文件 c521c143 2a23 42ef 89d1 557915e2323a sign xml在其日志文件夹中 第一部分是GUID 第二部分是名称模板 我想计算具有同名模板的文件的数量 例如 我们有 c521c143
  • 如何从命名空间内重载运算符<<

    这是我能想到的最小的包含示例 首先是类的标题 每当使用 pragma once ifndef EURO H define EURO H include
  • Xcode 新手无法用 C++ 打开文件?

    我一直在我参加的课程中使用 Windows 但我正在尝试运行基本代码来弄清楚如何从 Xcode 上的文件打开 关闭 输入 输出 而我通常在 Visual Studio 上使用的代码不是不知道为什么 谢谢 include
  • 如何使用 Selenium Webdriver .NET 绑定设置 Chrome 首选项?

    这是我正在使用的 用户代理可以成功设置 而下载首选项则不能 Windows 7 Chrome 26 Selenium dotnet 2 31 2 chromedriver win 26 0 1383 0 ChromeOptions chro
  • 这个元组创建习惯有名字吗?

    On the 增加邮件列表 http lists boost org Archives boost 2014 06 214213 php LouisDionne 最近发布了以下创建类似元组的实体的巧妙技巧 include
  • 多个包含带有变量定义的头文件

    我只是构建一个简单的 C 项目 代码如下所示 head h ifndef HEAD H define HEAD H int my var 100 endif src1 cpp include head h src2 cpp include
  • C# 从今天起 30 天

    我需要我的应用程序从今天起 30 天后过期 我会将当前日期存储在应用程序配置中 如何检查应用程序是否已过期 我不介意用户是否将时钟调回来并且应用程序可以正常工作 用户太愚蠢而不会这样做 if appmode Trial string dat
  • 什么是 C++11 扩展 [-Wc++11-extensions]

    我需要一些帮助来了解此错误发生的位置 警告 非静态数据成员的类内初始化是 C 11 扩展 Wc 11 extensions 这是它来自的代码部分 typedef struct Hand bool straight false bool fl
  • SQL Server CE 不兼容的数据库版本

    我有一个 SQL Server CE 4 0 数据库 sdf文件 当我尝试从我的应用程序 WPF 对数据库进行查询时 出现以下错误 数据库版本不兼容 如果这是兼容文件 请运行修复 其他情况请参考文档 数据库版本 4000000 请求的版本
  • 查找文本文件中每行的行大小

    如何计算每行中的字符或数字数量 是否有类似 EOF 的东西更像是行尾 您可以遍历行中的每个字符并不断增加计数器直到行尾 n 遇到 确保以文本模式打开文件 r 而不是二进制模式 rb 否则流不会自动将不同平台的行结束序列转换为 n 人物 这是
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js
  • 使用 ImageResizer 获取图像尺寸的最佳方法

    我正在将现有的 MVC 4 网站从自制用户文件上传切换为在上传时使用 ImageResizer 调整文件大小 我在文档中看到我不应该使用 System Drawing 但我无法找出任何其他获取图像尺寸的方法 尺寸是来自原始图像还是调整大小的

随机推荐

  • 了解 Cocoa 和 Objective-C 的引用计数

    我刚刚开始了解 Objective C 和 Cocoa 希望能够使用 iPhone SDK 我对 C 相当满意malloc and free概念 但 Cocoa 的引用计数方案让我相当困惑 有人告诉我 一旦你理解了它 它就会非常优雅 但我只
  • Rails:调用 .limit(5) 更改结果顺序

    我有一个搜索功能 基本上运行模型记录的有序列表 问题是每当我打电话时 search limit 5 结果的顺序与我调用时的顺序不同 search 这是我的一些方法 def self search server name pvp type i
  • 错误:您正在传递未定义的模块!请检查您传递给 i18next.use() 的对象

    由于上述问题 我的单元测试失败了 String ts import as i18n from i18next import initReactI18next from react i18next import BrowserLanguage
  • OSStatus NSOSStatusErrorDomain

    当我使用获取该属性时收到以下错误 AudioSessionGetProperty kAudioSessionProperty CurrentHardwareSampleRate size myAudioDescription mSample
  • 解析 1 TB 文本并有效计算每个单词出现的次数

    最近 我遇到一个面试问题 用任何语言创建一个算法 该算法应该执行以下操作 读取 1 TB 内容 对该内容中每个重复出现的单词进行计数 列出最常出现的 10 个单词 您能让我知道为此创建算法的最佳方法吗 Edit 好吧 假设内容是英文的 我们
  • 通过将一个变量拆分为多个变量来创建新列(在 R 中)

    我想通过分割数据框中的向量来创建新列 我有这样一个数据框 YEAR Variable1 Variable2 2009 000000 00000001 2010 000000 00000001 2011 000000 00000001 200
  • 在单例中使用删除的复制构造函数

    我已经实现了单例模式 例如this https stackoverflow com questions 270947 can any one provide me a sample of singleton in c 271104 2711
  • 在Golang中指定http请求的网络接口[重复]

    这个问题在这里已经有答案了 我使用 go 的 http 包来发出 http 请求 当 Ubuntu Linux 上有多个接口时 如何配置 go 的 http 客户端使用特定接口或 IP 地址来执行请求 默认的http客户端如何决定它使用哪个
  • 我应该如何将对象传递给函数?

    我是 C 编程新手 但我有 Java 编程经验 我需要有关如何在 C 中将对象传递给函数的指导 我是否需要传递指针 引用或非指针和非引用值 我记得在 Java 中不存在这样的问题 因为我们只传递保存对象引用的变量 如果您还可以解释在哪里使用
  • FirebaseAuth 禁用用户检查并注销?

    所以我有一个 onAuthStateChanged 流 我想检查用户是否已被 Firebase 控制台上的管理员禁用以注销用户并再次转到登录页面 这是我的流检查用户是否已登录 但是如何检查用户是否被 Firebase 控制台禁用 这是我的流
  • 如何在 iOS 9 中将 AVCaptureSession 与 Slide Over 和 Split View 结合使用?

    我的团队正在开发一套 SDK条码扫描 https github com pdf417 pdf417 ios 身份证扫描 https github com BlinkID blinkid ios and OCR https github co
  • 同时读取文件

    读取部分不是并发的 但处理是并发的 我这样表述标题是因为我最有可能使用该短语再次搜索此问题 我尝试后陷入僵局超越示例所以这对我来说是一次学习经历 我的目标是 逐行读取文件 最终使用缓冲区来执行行组 将文本传递给func 这确实有一些正则表达
  • 聚合初始化不支持构造函数访问[重复]

    这个问题在这里已经有答案了 鉴于下面的示例 我惊讶地发现 尽管默认构造函数被显式删除 或为此设置为默认值 但聚合初始化仍然是可能的 include
  • golang 从地图内的地图访问值

    我正在利用AVI Go SDK https pkg go dev github com Crypto89 sdk go v0 0 0 20190910135836 56c48329b7ce section readme获取 avi heal
  • XSLT 转换中的动态文档类型(正确使用结果文档指令)

    我正在使用 XSLT 需要根据参数在转换后的输出中动态生成文档类型 我听说这不能使用 XSLT 1 0 来完成 但可以使用 2 0 版本 使用结果文件 tag 到目前为止 从以下答案开始this https stackoverflow co
  • Windows DataGridView _RowCommand

    我的背景是 ASP Net 我被要求开发一个小型 Windows 应用程序 我尝试使用网格来呈现和选择数据 并且我认为 Windows 窗体中与 ASP Net 的 GridView 等效的是 DataGridView 我还不确定是否是这种
  • C++ iostream 中的奇怪 BUG?

    这是 iostream 中的错误吗 include
  • Android的convertView,用还是不用?

    文章中多线程提高性能 http android developers blogspot com 2010 07 multithreading for performance html来自 Android 开发者博客 convertView用
  • 如何在Android中更改进度条的进度颜色

    我在 Android 应用程序中使用水平进度条 并且我想更改其进度颜色 默认情况下为黄色 我怎样才能使用code 不是 XML 这不是以编程方式进行的 但我认为无论如何它可以帮助很多人 我尝试了很多 最有效的方法是将以下几行添加到 xml
  • 单元测试错误条件 - EINTR

    简而言之 如何对系统调用上的错误条件 例如 EINTR 进行单元测试 我正在研究的一个特定示例 这可能是一种单独的情况 是 当它返回带有 errno EINTR 的 EOF 时是否有必要再次调用 fclose 该行为取决于 fclose 的