有没有人能帮我理解一下POSIX的安全概念,尤其是perror()。手册页指出perror()是"MT-Safe race:stderr“。当perror()输出到标准错误时,我想了解给定的竞争条件对实现意味着什么。
这是否意味着stderr上的输出可能是混合的,或者是否有人必须关心其他事情?
发布于 2018-07-04 17:36:05
这意味着perror写入stderr,而stderr不是线程安全的。竞争条件意味着,如果多个线程同时写入stderr,您可能会得到交错输出。
POSIX requires most functions to be thread-safe
除了下面的functions1不需要是线程安全的以外,POSIX.1-2017的这一卷定义的所有函数都应该是线程安全的。
perror不在该列表中。
https://stackoverflow.com/questions/51170350
复制相似问题