linux - 系统调用接口(interface)到/proc信息

标签 linux perl linux-kernel inotify procfs

我可以通过系统调用获取存储在/proc中的信息,而不是从文件中处理文本吗?


我正在尝试 list inotify watches which are preventing the unmount of a filesystem .

我已经写了一部分 shell 脚本,但是它已经太慢了。我正在考虑用 Perl 重写。

有没有办法从系统调用中获取/proc信息来进一步加速?

最佳答案

不,除了open()read() 系统调用之外,没有其他/proc 节点的接口(interface)。

请记住,/proc 下的节点不是真实文件。从它们读取的内容将在内核生成内容时尽快返回——备用接口(interface)不会更快。

总而言之,用任何可以直接读取文件的编程语言(如 Perl)重新实现您的 shell 脚本已经可以显着加快它的速度。在 shell 脚本中,每次调用 lsgrep 时,您都会启动一个新进程,甚至可能启动多个进程。启动过程相对较慢 - 远离它可能会解决您的速度问题。

关于linux - 系统调用接口(interface)到/proc信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45951874/

相关文章:

java - 如何将 OO Perl 转换为 Java?

Perl - 如果需要很长时间,在按键时中断系统/反引号命令

linux-kernel - 在 linux 内核中检查 user = root?

c - "CPU dies"(与硬件无关)是什么意思?

linux - 如何使用 Awk/cut 获取 "/"之间的文本?

c - 命令两个线程的执行

c++ - C/C++,你如何在 CLI 中为下载进度编码? Linux

json - 第 1 行解析错误 : { #networkports "l ----------^ Expecting ' STRING', '}'

macos - 在 Inline::C 中链接 macOS 的框架

使用较新的编译器编译 linux 2.6 内核模块