gpt4 book ai didi

linux - 轮询、选择和 "would block"

转载 作者:太空狗 更新时间:2023-10-29 11:33:40 25 4
gpt4 key购买 nike

我正在学习 pollselect 和类似的函数,我经常被“would block”这句话困扰(这在我正在阅读的书上都有体现)关于为 Linux 构建驱动程序以及 pollselect 的手册页)。我真的不明白这个。什么会被阻止?读取/写入文件描述符的进程?读/写操作本身,在当前进程正在读/写文件时,没有其他进程能够读/写该文件?

如果这是一个愚蠢的问题,我很抱歉,但我很难在任何地方找到这个问题的答案。

最佳答案

Would block 表示进行系统调用的进程将阻塞(等待)直到系统调用返回。例如,如果您要求您的程序读取一个文件,在发出读取命令后,您的程序将等待(阻塞)直到操作系统执行读取并将结果返回给您的程序。

关于多个程序访问同一个文件,多个进程可以读取同一个文件。但是,当一个或多个进程正在写入一个文件而有一个或多个进程正在读取同一文件时,您可能(并且通常会)出现竞争条件。换句话说,阻塞是关于访问文件的单个进程,并且不能保证访问同一文件的两个进程之间的操作顺序(例如读取和写入)。 (出于某种原因,我在考虑文件;管道和套接字的读/写特性与文件系统上的文件的读/写特性有很大不同)。

关于linux - 轮询、选择和 "would block",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568412/

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