- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
POSIX 和 C11 都要求流具有关联的锁以防止数据竞争和交错。 POSIX 文档 flockfile()
和相关函数以允许线程安全 I/O 跨越多个调用。是否有等效的 C 函数?我不记得有一个,也找不到提到的一个,这并不一定意味着一个不存在。
在相关说明中,是否可以安全地假设任何声称符合 POSIX 的实现都会尊重 flockfile()
当使用 C11 线程.h 时?我认为大多数支持threads.h的主要POSIX兼容C实现都是通过在pthreads上构建的,这意味着这种假设通常是安全的。但是,多线程很难,知道异常会很有帮助。
最佳答案
Both POSIX and C11 require that streams have an associated lock to prevent data races and interleaving.
POSIX documents flockfile() and related functions to allow thread-safe I/O to span multiple calls. Is there an equivalent C function?
flockfile()
的类似物。 ,
ftrylockfile()
, 或
funlockfile()
.一个严格符合 C11 或 C17 的程序想要防止被交错的不同线程调用 I/O 函数将(因为它是严格符合的)在未定义宏
__STDC_NO_THREADS__
的实现上使用 C 线程库。 .这样的程序可以为此目的使用该库的互斥锁实现。没有标准方法可以直接访问与个人
FILE
直接关联的任何锁。对象。
On a related note, is it safe to assume any implementation claimingPOSIX conformance will respect flockfile() when using C11 threads.h?
Ithink most major POSIX-compliant C implementations that supportthreads.h do so by building on pthreads, which would imply such anassumption is usually safe. However, multithreading is hard, and itwould be helpful to know of exceptions.
flockfile()
进行互操作。 ,但省略专门探测该细节的单元测试是不合理的。
关于C11 相当于 POSIX flockfile()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54897650/
POSIX 和 C11 都要求流具有关联的锁以防止数据竞争和交错。 POSIX 文档 flockfile()和相关函数以允许线程安全 I/O 跨越多个调用。是否有等效的 C 函数?我不记得有一个,也找
我需要在屏幕上打印一些消息,我的程序是多进程和多线程的。我使用了flockfile()、flock()和mutex,但是有些消息是重叠的。我也做了一个基本的测试程序,结果是一样的。为什么我无法同步输出
我有一些例程可以多次写入 stdio 流以生成单个日志消息。为了保持每条消息分开,即使在多线程应用程序中,我将每条消息都用对 flockfile() 和 funlockfile() 的调用括起来。在我
像这样的代码在 Linux 上是否安全,在某种意义上 1) 它不会崩溃并且无法读取 free()ed 内存和 2) freopen()ed 文件与 fclose()ed 文件共享相同的锁定计数? 线程
我是一名优秀的程序员,十分优秀!