我搜索过:
仍然无法找到解释 read(2) 如何知道必须阻塞或不阻塞的答案。是的,read(2)不是包含答案的函数,但它是起点。
这里我画一下问题的时间线:
看起来像在这里https://elixir.bootlin.com/linux/latest/source/drivers/tty/n_tty.c#L2212:
timeout = (HZ / 10) * TIME_CHAR(tty);
...
timeout = wait_woken(&wait, TASK_INTERRUPTIBLE,
timeout);