\section{用seq\_file管理/proc文件}
\label{sec:manage_procfs_with_seq_file}
-如同我们所见,写一个 \verb|/proc| 文件可能很``复杂''。因此为帮助用户写 \verb|/proc| %
+如我们所见,写一个 \verb|/proc| 文件可能很``复杂''。因此为帮助用户写 \verb|/proc| %
文件,这里有一个被命名为 \cpp|seq_file| 的 API 用来帮助格式化 \verb|/proc| 文件%
-用于输出。它基于序列,由 \cpp|start()|,\cpp|next()|,\cpp|stop()| 这三个函数组%
-æ\88\90ã\80\82å½\93ä¸\80个ç\94¨æ\88·è¯»å\8f\96 \verb|/proc| æ\96\87ä»¶æ\97¶ï¼\8c\cpp|seq_file| API å¼\80å§\8bä¸\80个åº\8få\88\97。
+用于输出。它基于顺序,由 \cpp|start()|,\cpp|next()|,\cpp|stop()| 这三个函数组%
+æ\88\90ã\80\82å½\93ä¸\80个ç\94¨æ\88·è¯»å\8f\96 \verb|/proc| æ\96\87ä»¶æ\97¶ï¼\8c\cpp|seq_file| API å¼\80å\90¯ä¸\80个顺åº\8få\8c\96å¤\84ç\90\86。
-一个序列从函数 \cpp|start()| 的调用开始。如果函数返回值是一个非 NULL 值,\cpp|next()| %
-函数被调用。这个函数是一个迭代器,其目标是遍历所有数据。每次 \cpp|next()| 被调%
-用,函数 \cpp|show| 也被调用。它将数据值写入用户读取的缓冲区中。直到 \cpp|next()| %
+一个顺序处理从函数 \cpp|start()| 的调用开始。如果函数返回值是一个非 NULL 值,%
+\cpp|next()| 函数被调用。这个函数是一个迭代器,其目标是遍历所有数据。每次 \cpp|next()| %
+被调用,函数 \cpp|show| 也被调用。它将数据值写入用户读取的缓冲区中。直到 \cpp|next()| %
返回 \cpp|NULL| 时,\cpp|next()| 将一直被调用。当 \cpp|next()| 返回 \cpp|NULL| %
-时,序列结束,然后,函数 \cpp|stop()| 被调用。
+时,顺序处理过程结束,然后,函数 \cpp|stop()| 被调用。
-{\CJKfamily{hei}{当心:}}当一个序列结束时,另一个启动。这意味着在函数 \cpp|stop()| 的结束%
-处,函数 \cpp|start()| 再次被调用。当 \cpp|start()| 返回 \cpp|NULL| 时,这个循环%
-才停止。你可以在图~\ref{img:seqfile}~中看到这个方案。
+{\CJKfamily{hei}{当心:}}当一个顺序处理过程结束时,另一个启动。这意味着在函数 %
+\cpp|stop()| 的结束处,函数 \cpp|start()| 再次被调用。当 \cpp|start()| 返回 %
+\cpp|NULL| 时,这个循环才停止。你可以在图~\ref{img:seqfile}~中看到这个方案。
\begin{figure}[h]
\center
\end{figure}
\cpp|seq_file| 为 \cpp|proc_ops| 提供基础函数,如 \cpp|seq_read|,\cpp|seq_seek|,%
-以及其它一些函数。但没东西写入 \verb|/proc| 文件。当然,你仍然使用在前面示例中%
+以及其它一些函数。但没有内容写入 \verb|/proc| 文件。当然你仍然使用与前面示例中%
相同的方法。
\samplec{examples/procfs4.c}