请有人可以帮助我理解POSIX安全概念,尤其是对于perror()
。手册页指出perror()
是“ MT-Safe race:stderr”。当perror()
输出到标准错误时,我想了解给定的竞争条件对实现意味着什么。
这是否意味着stderr
上的输出可能是混合的,还是有人必须关心的其他事情?
答案 0 :(得分:2)
这意味着perror
写入stderr
且stderr
不是线程安全的。竞争状态意味着,如果多个线程同时写入stderr
,则可能会产生交错输出。
POSIX requires most functions to be thread-safe:
本卷POSIX.1-2017定义的所有函数均应是线程安全的,但以下功能1不必是线程安全的。
perror
不在该列表中。