fwrite 内部是否调用任何锁?

2023-12-15

在Solaris 中,当我将dbx 连接到正在运行的堆栈之一时,我发现对fwrite 的调用导致了__lll_lock_wait()?

什么情况下会发生这种情况? fwrite 是否在内部尝试获取锁?


我查看的标准(C99 和 POSIX)没有提及有关锁定或解锁 IO 的内容fwrite.

在我的 Linux 系统上,他们没有非常精确地提到锁定man page:

   For non-locking counterparts, see unlocked_stdio(3).

并且有效地,有一个fwrite_unlocked功能。 POSIX 中的标准解锁函数仅getc_unlocked(), getchar_unlocked(), putc_unlocked(), and putchar_unlocked().

我的解释是,可能 man(3) 集中的所有缓冲 IO 都被锁定,并且您只有很少的标准化接口来执行解锁 IO。

这些东西在线程之间锁定确实是一件好事,否则当多个线程写入时,您可能会得到完全混乱的输出stderr, e.g.

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

fwrite 内部是否调用任何锁? 的相关文章

  • 如何指定CMAKE外部项目的编译器?

    我使用ExternalProject Add 包含一个外部项目 我想要的是能够做到 cmake DCMAKE CXX COMPILER
  • HttpResponseMessage 的内容为 JSON

    我有一个 ASP NET MVC WEB API 由于多种原因 由于没有授权而重定向 我不能只使用一个简单的对象并在我的控制器方法中返回它 因此我需要 HttpResponseMessage 类来允许我重定向 目前我正在这样做 var re
  • 如何在C编程中获取当前时间(以毫秒为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 ANSI C 测量以毫秒为单位的时间 https stackoverflow com questions 361363 how to measure time in milliseconds
  • 无法在更新面板中找到上传的文件

    aspx
  • 将内核链接到 PTX 函数

    我可以使用 PTX 文件中包含的 PTX 函数作为外部设备函数 将其链接到另一个应调用该函数的 cu 文件吗 这是另一个问题CUDA 将内核链接在一起 https stackoverflow com questions 20636800 c
  • ObservableCollection 上的“Cascade”绑定,包含其他 ObservableCollection

    我有一个项目需要显示合同列表 Class Affaire 每个合约都有一个阶段列表 类别阶段 我使用绑定在 2 个不同的 ListView 中显示它们中的每一个 问题是当我从 ListView 中删除一个 Phase 时 显示 Phases
  • 优化对绑定到 DataGridView 的 DataTable 的更新

    我的应用程序中有一个显示一些数据的表单 当我第一次显示表单时 我将一些数据加载到 DataTable 中 然后将 DataTable 绑定到 DataGridView 我还启动了一个异步方法来执行一些较慢的数据库查询 当这些慢查询完成时 我
  • F# 内联如何工作?

    对于 F 我的理解是您可以使用 inline 关键字在调用站点执行类型专门化 那是 val inline a gt b gt c when a or b static member a b gt c 约束条件是 a or b必须有一个静态成
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 使用成员函数作为 std::shared_ptr 的自定义删除器时出现问题

    我正在尝试弄清楚如何将 std shared ptr 与自定义删除器一起使用 具体来说 我将其与 SDL Surface 一起使用 如下所示 std shared ptr
  • 让 GCC/Clang 使用 CMOV

    我有一个简单的标记值联合 这些值可以是int64 ts or doubles 我正在对这些联合进行加法 但需要注意的是 如果两个参数都代表int64 t值 那么结果也应该有一个int64 t value 这是代码 include
  • 最小对的总和

    Given 2N点 in a 2D plane 你必须将它们分组为N pairs使得所有对的点之间的距离的总和是最小可能值 所需的输出只是总和 换句话说 如果a1 a2 an分别是第一对 第二对 和第 n 对点之间的距离 则 a1 a2 a
  • 如何从 Emacs 中检出 Perforce 下的文件?

    我在工作中使用 Perforce 进行源代码控制 并且希望从 Emacs 中 打开以进行编辑 源代码控制下的文件 那怎么办呢 我需要在 Emacs 中设置什么 有插件吗 我还想执行其他 p4 操作 例如提交我的更改等 Perforce Em
  • 表单.位置不起作用

    我之前问过这个问题 以为我已经解决了 但它仍然不起作用 Form Show 稍微移动表单位置 https stackoverflow com questions 1214014 form show moves form position s
  • C++ std:.auto_ptr 或 std::unique_ptr (支持多个编译器,甚至是旧的 C++03 编译器)?

    我正在尝试更新一些 C 代码 我想转向更现代的代码 c 11 但我仍然需要使用一些较旧的编译器 兼容 c 03 来编译代码 因为支持的平台限制 我知道在 C 11 编译器中 std auto ptr 已被弃用 但由于较旧的编译器支持 我不能
  • MPI_Gatherv:根数组中收到的垃圾值

    我正在尝试实施MPI Gatherv函数于C 根据我的程序 包括 root 在内的每个进程都应该创建一个大小等于 进程的等级 1 这将在所有单元格中保持进程的等级 然后这个本地数组被收集到根的 rcv array 中 不知何故 我得到了垃圾
  • 在发送传出请求之前将新的 SoapClient 绑定到特定 IP 地址

    假设应用程序所在的计算机具有 SoapClient 具体来说 我正在使用 Microsoft Web Service3 Messaging SoapClient 它通过发送传出请求并获取 SoapEnvelope 作为回报 完善的流程 与远
  • C# 编译器编译 .txt .obj .java 文件

    using System class Program public static void Main Console WriteLine Hello World Console ReadLine 我将文件另存为1 java 2 obj an
  • 通过 OCI 调用 Oracle 存储过程并使用 C++ 中的 out ref 游标返回结果

    我想使用 OCI 接口从 C 调用 Oracle 存储过程 并使用 out SYS REF CURSOR 作为过程的参数来迭代结果 我是 OCI 新手 所以可能会遗漏一些简单的东西 大部分代码取自这里 我的存储过程是 CREATE OR R
  • “保留供任何使用”是什么意思?

    注意 这是一个c questions tagged c问题 虽然我补充说c questions tagged c 2b 2b如果某些 C 专家可以提供 C 使用与 C 不同的措辞的基本原理或历史原因 在 C 标准库规范中 我们有这个规范文本

随机推荐

  • 有没有办法使用 C 标准库来测量微秒的时间?

    有没有平台无关使用 C 标准库测量微秒时间的方法 不幸的是 测量的精度取决于操作系统
  • 在经典 ASP / Javascript 中将对象插入全局范围

    这个问题与经典 ASP 中的 Javascript 有关 它与浏览器中运行的 Javascript 无关 设计为可重用的 JS 模块的典型构造如下 function globalScope declarations here this 这允
  • iframe 中的parent.location.reload 不工作 IE

    当我单击测试时 我需要刷新父站点 刷新浏览器 我有源index php 在 q php 中 a href testing a 它可以在 FF LAtest 版本 Chrome 中工作 但不能在 IE 9 中工作 他说 script70 权限
  • 向 hibernate JoinTable 添加附加属性

    我有两个实体 消息和用户 用户与消息具有多对多关系 一个用户可以拥有多条消息 并且消息 目前 为了使其不那么复杂 与用户具有多对多关系 一条消息可以发送给多个用户 我使用 JoinTable 连接两个实体 但是 我想在连接表中添加一个 状态
  • 如何获取小于/大于给定数字的最接近的浮点数

    这是一个示例函数 function step x min max return x gt min x lt max x 0 console log step 3 Number EPSILON 3 5 Expected 0 actual 3
  • 如何使用 Express 框架从 Node.js 中的请求中获取字段?

    我正在编写 Node js 脚本 但在集成 登录 表单时遇到问题 我可以使用静态 HTML 页面来完成此操作 但是使用动态 ejs 页面会导致问题 我的表单字段被报告为 未定义 var helmet require helmet var b
  • 如何解决 mtrand.RandomState.choice 中的内存错误?

    我正在尝试从 1e5 字符串中采样 1e7 项 但出现内存错误 从 1e4 个字符串中采样 1e6 个项目是很好的 我使用的是 4GB RAM 的 64 位机器 并且认为我不应该达到 1e7 的任何内存限制 有任何想法吗 python3 P
  • 消息系统数据库架构

    我正在尝试在 PHP 和 MySQL 中实现消息传递系统 但在决定如何处理表和查询时遇到一些困难 对于允许多个参与者的系统来说 最好的方法是什么 我想我可能需要 3 个表 除了用户表 就像是 Conversation id Messages
  • v8 存储一个字符串需要多少内存?

    我正在尝试计算 v8 中字符串的内存使用量 并且我知道单个字符将占用 2 个字节 但是当我在开发工具中检查浅层大小和保留大小时 我对结果感到困惑 function Student this name lll var a new Studen
  • jQuery,检查视频是否有高度/宽度

    我有一个
  • 如何将 FFMpeg 构建为 iOS 框架

    我正在尝试在 FFMpeg 上构建自己的播放器基础 我成功将 FFMpeg 构建为静态库 a 但需要复制另一个头文件才能使用 我希望它能像框架一样使用 但即使我将头文件添加到框架中 设置为公共 我的演示应用程序在 FFMpeg framew
  • ASP.NET:为什么无法禁用控件状态

    我知道 ASP NET 不允许禁用控件状态 有谁知道吗why 我用谷歌搜索了很多 但只看到这是不可能的 但找不到 为什么 任何对此的想法都将受到欢迎 附 在我的特定情况下 我需要将很多项目放入下拉列表中 这些项目不会用于服务器端事件 我需要
  • 我被刮伤了,我该如何防止这种情况发生?

    运行 IIS 7 每周几次 我会看到来自一个地理位置的 Google Analytics 上的大量点击 他们正在查看的网址序列显然是由某种算法生成的 所以我知道我正在被抓取内容 有什么办法可以防止这种情况发生吗 谷歌不只给我一个IP 这让我
  • Android 多列列表视图

    我正在为我的应用程序创建一个排行榜 高分列表 我想以 4 列显示数据 排名 名称 创建者 得分 并通过对象列表相应地填充它们 我想在列表中一次显示 5 个项目 总共 20 个项目 使列表可滚动 我找不到合适的方法来做到这一点 由于我的工作截
  • 填充内联元素的顶部和底部

    引用 Head First html 您可以在内联元素的顶部和底部添加内边距 但内边距不会影响其周围其他内联元素的间距 因此内边距会与其他内联元素重叠 a 据我理解上面的引用 向内联元素的顶部和底部添加填充不会 永远 对周围的元素产生任何影
  • 是否可以修复完整内存转储,以便不再需要运行 .imgscan /l ?

    由于某种原因 我已经开始接收来自需要运行的生产的转储 imgscan l first 现在 我倾向于使用从 powershell 脚本调用的 CDB 对转储运行小型查询 然而 运行 imgscan l每次都需要相当长的时间 是否可以以渲染的
  • 当我使用 Nightmare 时,在页面之间移动并进行抓取

    有一个网站 其中包含一个包含 25 个条目列表的页面 其中每个条目都是指向包含我需要的一些信息的页面的链接 我想进入列表页面 然后 1 点击第一个条目的链接 2 检索所有html 3 点击返回列表页面 有一个按钮 4 对所有其他列表重复此操
  • 在 libav 中读取 dumepd RTP 流

    嗨 我需要一些帮助 指导 因为我陷入了我的研究之中 问题 如何在 API 通过编程 或控制台版本中使用 gstreamer 或 avlib ffmpeg 转换 RTP 数据 Data 我有来自 TCP 上的 RTP RTCP 的 RTP 转
  • WPF 动画仅触发一次

    我有一个小椭圆 每次依赖属性设置为 true 时我都希望它闪烁 因为该属性可以在几毫秒内很快从 true 变回 false 所以我需要使用动画而不是简单样式的数据触发器来完成此操作 基本上 我只想要真正的值来 ping 椭圆上的动画
  • fwrite 内部是否调用任何锁?

    在Solaris 中 当我将dbx 连接到正在运行的堆栈之一时 我发现对fwrite 的调用导致了 lll lock wait 什么情况下会发生这种情况 fwrite 是否在内部尝试获取锁 我查看的标准 C99 和 POSIX 没有提及有关