gpt4 book ai didi

linux - pipe() 和 socket() 线程安全吗? (双重关闭()问题)

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:28 25 4
gpt4 key购买 nike

我正在使用 g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0

uname -a
Linux ubuntu 4.18.0-17-generic#18~18.04.1-Ubuntu SMP Fri Mar 15 15:27:12 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

我认为所有创建文件描述符的系统调用在 Linux 上都是线程安全的。我的意思是,从不同线程并行调用 socket()pipe() 不应返回相同 fd。是不是真的?

最佳答案

在您的示例程序中,您有 data races除了 pIsI 之外的每一个全局变量。您从一个线程读取它们,同时从另一个线程写入它们。这会导致未定义的行为,这意味着您从该程序获得的任何结果都是无意义的。

socketpipe函数是线程安全的,并且可以安全地从异步信号处理程序中使用。奇怪的是,手册页不包含这些信息,但在线文档包含。

关于linux - pipe() 和 socket() 线程安全吗? (双重关闭()问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56721906/

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