rcore-os / rCore-Tutorial-Book-v3

A book about how to write OS kernels in Rust easily.

Home Page:https://rcore-os.github.io/rCore-Tutorial-Book-v3/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rCore-Tutorial-Book-v3/chapter7/2pipe

utterances-bot opened this issue · comments

管道 — rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档

https://rcore-os.github.io/rCore-Tutorial-Book-v3/chapter7/2pipe.html

还需姚

有一个问题,读完buffer后self.head == self.tail然后更新状态为空,不需要将buffer里的字段清空吗(只是读完了为空,但字段数据还在)?

有一个问题,读完buffer后self.head == self.tail然后更新状态为空,不需要将buffer里的字段清空吗(只是读完了为空,但字段数据还在)?

@PeterWrighten 即使里面还有数据,但是ring buffer逻辑上已经为空了,这些数据也不会再被读到了。后面往ring buffer里写入新数据覆盖掉老数据,这些新数据才会被读到。

有一个问题,读完buffer后self.head == self.tail然后更新状态为空,不需要将buffer里的字段清空吗(只是读完了为空,但字段数据还在)?

@PeterWrighten 即使里面还有数据,但是ring buffer逻辑上已经为空了,这些数据也不会再被读到了。后面往ring buffer里写入新数据覆盖掉老数据,这些新数据才会被读到。

好的,谢谢

管道的系统调用原型及使用方法

“因此,在第 25 和第 34 行,分别第一时间在子进程中关闭管道的写端和在父进程中关闭管道的读端。父进程在第 35 行将字符串 STR 写入管道的写端,随后在第 37 行关闭管道的写端;子进程在第 27 行从管道的读端读取字符串,并在第 29 行关闭。”

代码的行数对应错误了