gpt4 book ai didi

c - C标准库中的函数线程安全吗?

转载 作者:太空狗 更新时间:2023-10-29 16:33:59 24 4
gpt4 key购买 nike

我在哪里可以得到明确的答案,我的memcpy(使用Ubuntu自带的eglibc实现)是否是线程安全的? - 老实说,我真的没有在文档中找到明确的是或否。

顺便说一下,对于“线程安全”,我的意思是可以安全地同时使用 memcpy,只要可以安全地同时复制一个字节一个字节的日期字节。至少如果只读数据被复制到不重叠的区域,这应该是可能的。

理想情况下,我希望看到类似 this 底部列表的内容ARM 编译器文档中的页面。

最佳答案

您可以在此处的 2.9.1 线程安全 章中找到该列表:http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_01

也就是说,这是一个函数列表,posix 要求线程安全。所有其他函数都需要是线程安全的。 Posix 包括标准 C 库和典型的“unix”接口(interface)。 (这里有完整列表,http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.html)

memcpy() 由 posix 指定,但不是 2.9.1 中列表的一部分,因此可以被认为是线程安全的。

linux 上的各种环境至少会尽力实现 posix - linux/glibc 上的函数可能是线程安全的,即使 posix 不需要它 - 虽然这很少被记录。对于 posix 涵盖的其他功能/库,您只剩下他们的作者记录的内容......

据我所知,posix 等于 thread safety具有可重入性,并保证没有内部数据竞争。但是,您应对可能的外部数据竞争负责 - 例如保护自己免于调用电话等memcpy() 具有可能同时更新的内存。

关于c - C标准库中的函数线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19974548/

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