件的方法进行处理,例如创建指向它的链接。
在 \verb|/proc| 中,每当我们注册一个新文件,\cpp|struct inode_operations| 将被%
-用来访问它,这是我们被允许来指定的事情。一个 \cpp|struct inode_operations| 其中%
-包括一个指针,该指针指向一个 \cpp|struct proc_ops|,该结构中有指向我们用到的 %
-\cpp|procf_read| 与 \cpp|procfs_write| 函数。这是我们使用的机制。
+我们允许指定用来访问它。这是我们用的机制,\cpp|struct inode_operations| %
+结构体,其中包括指向一个 \cpp|struct proc_ops| 结构的指针,该结构体中有指向我%
+们用到的 \cpp|procf_read| 与 \cpp|procfs_write| 函数。
-这里另一个有趣的点是 \cpp|module_permission| 函数。当一个进程尝试用 \verb|/proc| %
-文件做一些事情时,这个函数都会被调用,并且它还可决定是否允许访问,或禁止访问。%
-现在它仅基于当前用户的操作与 uid(在 current 中可用,指向包含当前正在运行的进程%
+这里有另一个引人之处是 \cpp|module_permission| 函数。当一个进程尝试用 \verb|/proc| %
+文件搞点花活时,这个函数都会被调用,并且它还拥有决定允许或禁止访问的权力。%
+现在它仅基于当前用户的操作与 uid\,(在 current 中可用,指向包含当前正在运行进程%
信息的结构指针)。但它可以基于我们偏爱的任何内容,例如其它进程正在处理同一文件,%
-一天中的时间,或我们收到的最后一个输入。
+一天中的时间,或被我们收到的最后一个输入。
-值得注意的是,读和写的标准角色在内核中是相反的。读函数用于输出,而写函数用于输%
-入。原因是读和写参考用户的视角,如果一个进程从内核读一些东西,那么内核需要输出%
+值得强烈观注的是,读和写的标准角色在内核中是相反的。读函数用于输出,而写函数用%
+于输入。原因是读和写是坐在用户空间程序的位置上而言的\footnote{此处遵从``屁股决%
+定脑袋''的社会从林法则。},如果一个进程从内核读一些东西,那么内核需要输出%
它,另外,如果一个进程向内核写入一些东西,那么内核作为输入而接收它们。
\samplec{examples/procfs3.c}
-还渴望 procfs 示例吗?好吧,首先记住,有传言称 procfs 即将退出,请考虑用 \verb|sysfs| %
-来替代。如果你想自己记录与内核相关的内容,请考虑使用此机制。
+还渴望 procfs 示例吗?好吧,首先留个心眼,现在流言四起,声称 procfs 江湖地位不保%
+寝,少壮派 \verb|sysfs| 正被考察以替换它的江湖地位。如果你想自己记录与内核相关的%
+内容,请考虑使用此机制。
\section{用seq\_file管理/proc文件}
\label{sec:manage_procfs_with_seq_file}