gpt4 book ai didi

c - 在 sigaction 处理程序中使用 flock()

转载 作者:IT王子 更新时间:2023-10-29 00:44:00 25 4
gpt4 key购买 nike

flock() 通常是异步信号安全的,因为它是一个系统调用。它的语义使得很难以不同的方式实现它。它不在 POSIX 的 list 中异步信号安全函数,因为它根本不在 POSIX 中。

是否可以在 sigaction 处理程序中毫无问题地使用 flock()

最佳答案

根据 @alk 回答如下 topic :

我们可以开发我们的属性(property)flock()函数(它的名字可以是 async_flock() )。我们在这个新函数中复制原点lockf()的内容代码,然后我们进行以下更改以获得异步信号安全功能:

  • 替换__fcntlfcntl : 编译代码所必需的
  • 替换 __set_errno(<errno-define>)errno = <errno-define> : 编译代码所必需的

  • 将调用替换为 memset()适当分配 struct fcntl = {0} : 有必要让它成为异步信号保存。

关于c - 在 sigaction 处理程序中使用 flock(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16979059/

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