如何使函数异步信号安全?

2023-11-27

我有以下内容sigaction处理函数

void signal_term_handler(int sig)
{
    printf("EXIT :TERM signal Received!\n");
    int rc = flock(pid_file, LOCK_UN | LOCK_NB);
    if(rc) {
        char *piderr = "PID file unlock failed!";
        fprintf(stderr, "%s\n", piderr);
        printf(piderr);
    }
    abort();
}

有人告诉我flock and printf不是异步信号安全的。我找不到替代的异步信号安全函数flockin this list.

并根据上面的链接:

当信号中断不安全功能并且信号捕获时 函数调用不安全函数,行为未定义

有没有办法制作flock异步信号安全?或者还有其他解决方案可以执行flock当我收到TERM signal?


您可以使用fcntl()作为集群()的替代品。

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

如何使函数异步信号安全? 的相关文章

随机推荐

  • 如何在同一个 Ruby Rails 项目中配置 MongoMapper 和 ActiveRecord

    我有一个现有的生产 Ruby Rails 应用程序 我希望在时间允许的情况下将其迁移到 MongoDB 因为不能一次性全部重写 我希望能够在我接触到旧课程时就弃用它们 我打算使用 MongoMapper 我找不到任何人解释如何设置数据库配置
  • com.firebase.client.FirebaseException:无法解析类为 CLASS_NAME android 的节点

    我在使用 Firebase 更新现有值时遇到以下异常updateChildren方法 com firebase client FirebaseException Failed to parse node with class class c
  • 如何开始使用 Java 构建 Web 应用程序? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想开始使用 java 进行 Web 开发 不知道如何开始 该学什么 或者什么是最好学习和使用的 Web 框架 帮帮我 我假设您只是 Web 应用程序的新手 而不是 Java 本
  • 超类中的私有方法可以在子类中重写吗?

    Java中私有方法可以被重写吗 如果不是 那么下面的代码如何工作 class Base private void func System out println In Base Class func method class Derived
  • 如何解决UITableView滚动缓慢的问题

    我是第一次在真实设备上进行测试 在修复了一些明显的性能问题后 我陷入了如何平滑滚动的困境 这就是我所做的 数据在sqlite中 我有一个带有标题的小数组 我在每个标头数组中都有来自数据库的 Id 列表 e g 标头 A Id 1 2 标头
  • 我可以替换 Java 正则表达式中的组吗?

    我有这段代码 我想知道是否可以仅替换 Java 正则表达式中的组 而不是所有模式 代码 Pattern p Pattern compile d d String input 6 example input 4 Matcher m p mat
  • 将 JAX-RS bean 验证错误消息绑定到视图

    我们可以使用 bean 验证轻松验证 JAX RS 资源类字段或方法参数 如下所示 Size min 18 max 80 message 年龄必须在 min 和 max 之间 String Age 将错误消息绑定到 JSP 页面的最简单方法
  • GPS 是否已激活 - Flutter

    有没有办法在 Flutter 中找出 GPS 是激活还是停用 我使用插件location然而 我只得到位置 而不是 GPS 的状态 更新 地理定位器8 0 1 bool isLocationEnabled await Geolocator
  • API Youtube,如何获得喜欢和不喜欢

    在一个网站上 我使用 API Youtube 和 ZendGdata 来检索用户的所有视频 并使用视频及其信息创建网页 现在我需要在我的网站上添加一个喜欢或不喜欢视频的系统 并且我需要检索喜欢和不喜欢的数量 是的 这里有2个问题 所以 我检
  • selectonemenu 出现错误 java.lang.String 无法转换为 javax.faces.model.SelectItem

    我想填写一个选择菜单 但总是出现此错误 java lang String cannot be cast to javax faces model SelectItem 这是代码 public class ToolsJIRA implemen
  • 仅将 ASP.NET MVC 应用程序管理站点锁定到 LocalHost

    我有一个 ASP NET MVC 网站 我想向其中添加一个小型管理页面 我遇到的问题是 我将全部部署它 但 SSL 不可用 我同意要求管理员远程桌面并使用本地浏览器来执行管理 这可以做到吗 我基本上希望得到与
  • 创建 SQLite 数据库和表

    在 C 应用程序代码中 我想创建一个或多个 SQLite 数据库并与之交互 如何初始化一个新的 SQLite 数据库文件并打开它进行读写 数据库创建完成后 如何执行DDL语句创建表 下一个链接将为您带来一个很棒的教程 这对我帮助很大 如何在
  • Meteor.js 中的运营转型?

    Meteor js 支持操作转换吗 我正在开发一个与 Etherpad 相关的项目 我想使用 Meteor js 我认为它非常适合此类项目 如果我想使其具有可扩展性 那么运营转型对于我的项目来说非常重要 我目前的知识表明 流星不支持开箱即用
  • 黑莓推送通知实施

    如何为黑莓应用程序实现推送通知 我听说为此我需要购买一台 Blackberry Enterprise Server 每年花费 1400 美元 这是真的 实施推送通知的良好起点在哪里 我对 iPhone 推送开发有经验 但找不到黑莓的同等功能
  • 一个简单的投票系统:如何防止重复投票[重复]

    这个问题在这里已经有答案了 我正在构建一个带有投票选项的简单网络应用程序 我计划为投票最多的人提供现金奖励 所以我想要一个相对安全的系统 我有几个关于受孕的问题 我知道我的帖子与其他一些帖子类似 但似乎没有一个帖子足够具体到该平台 让我放心
  • 如何使用 ggproto 扩展 ggplot2 boxplot?

    我经常在工作中使用箱线图等ggplot2美学 但标准geom boxplot缺少对我来说重要的两件事 胡须末端和中间标签 感谢这里的信息 我编写了一个函数 gBoxplot lt function formula NULL data NUL
  • 使用箭头键,并在 Angular 中使用 keyup

    我有一个 Angular 项目 我想为箭头键实现一些功能 我尝试使用类似的东西 keyup keyCode Move itemArray UP 其中 keyCode 代表箭头键之一的代码 但是没有任何作用 这是我使用它的模板 模板 HTML
  • GMSAutocompleteViewController 仅显示 5 个结果

    我综合了GMS自动完成视图控制器在我的应用程序中 let autocompleteController GMSAutocompleteViewController autocompleteController delegate self l
  • 关于十六进制形式的 EXIF 的问题

    我试图了解 jpeg 文件 十六进制 的 EXIF 标头部分以及如何理解它 以便我可以提取数据 特别是 GPS 信息 无论好坏 我正在使用 VB Net 2008 抱歉 这是我现在能掌握的 我已将 jpg 的前 64K 提取到字节数组中 并
  • 如何使函数异步信号安全?

    我有以下内容sigaction处理函数 void signal term handler int sig printf EXIT TERM signal Received n int rc flock pid file LOCK UN LO