【发布时间】:2024-07-02 15:35:02
【问题描述】:
我想对 Linux 系统上的 read(2) 行为有一定的了解, 我正在尝试制作外壳,但在阅读输入时遇到问题。 我做类似的事情
read(0, BUF, 4096);
所以事情是在 bash(和大多数 shell)上,你可以通过管道发送这样的命令:
echo ls | bash
Bash 只会执行 ls 一次,但当我执行此操作时,读取总是返回相同的缓冲区,“ls” 所以它进入无限循环。 我想知道为什么 read(2) 没有返回 0,谢谢。
【问题讨论】: