在此源代码http://man7.org/tlpi/code/online/dist/sysinfo/procfs_pidmax.c.html/proc/sys/kernel/pid_max
中,首先简单地读取文件(使用read
系统调用),然后简单地写入(使用write
系统调用)。
为什么在写作之前没有必要lseek
从头开始?我认为文件偏移指针对于读取和写入是相同的(这就是相关书籍的作者所说的)。
在此源代码http://man7.org/tlpi/code/online/dist/sysinfo/procfs_pidmax.c.html/proc/sys/kernel/pid_max
中,首先简单地读取文件(使用read
系统调用),然后简单地写入(使用write
系统调用)。
为什么在写作之前没有必要lseek
从头开始?我认为文件偏移指针对于读取和写入是相同的(这就是相关书籍的作者所说的)。
这是因为/proc
它不是真正的文件系统,因此pid_max
以您不需要任何seek
. 我什至不知道这里是否支持搜索。
只是为了让您了解这里的文件有多么不同/proc
,这是非常古老但说明性的内核错误的参考,特别与以下相关pid_max
:https ://bugzilla.kernel.org/show_bug.cgi?id=13090
此链接应向您解释更多详细信息:/proc 文件系统
最后是 developerWorks 文章“使用 /proc 文件系统访问 Linux 内核”,逐步说明了具有 /proc FS API 的内核模块代码。这看起来像你需要的 100%。
我查看了内核源代码,/proc/sys/ 下的文件在 sysctl 表控制下,每个条目的读/写回调支持文件偏移。“pid_max entry”有一个 int 值可以操作,因此,这些回调中的偏移量实际上没有使用。