问题标签 [procfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 是否会在不关闭工作的情况下重新读取 /proc 中正在更新的文件?
我正在重新阅读/proc/stat
文件以获取更新的值。首先,我打开文件,读取每一行,关闭文件并重新打开以获取更新的值。我想知道是否需要关闭文件,或者我可以通过寻找文件的开头来达到相同的效果。我写了一个没有关闭文件的代码,而是将文件指针放在文件的开头,它和以前一样工作。但我想知道,将寻求文件的开头保证我会得到更新的信息?
编辑:另一点,我在寻找和阅读之间睡觉。
虽然这个问题不是特定于语言的,但这里是上下文中的实现语言:C、Perl。
编辑
这是我写的代码。
比。
哪一个更可取?
linux-kernel - procfs 中的 read_proc_t 和 file_operations
我现在正在研究proc文件系统。我现在知道读取证明文件时调用 read_proc_t 函数,写入证明文件时调用 write_proc_t 函数。但我还在 proc_dir_entry 的定义中找到了 file_operaitons* 字段,以及此示例代码 ( http://linux.die.net/lkmpg/x810.html )。
所以我很困惑,如果我在 file_operations 结构中同时提供 read_proc_t 函数和 read 函数的实现会发生什么?哪个优先于另一个?一个可以被另一个覆盖吗?非常感谢。
c - 在 /proc 文件系统中创建的文件的打开系统调用中的负返回值
我在/proc
名为“test”的文件中创建了一个文件(它是在内核中创建的)。该文件存在。当我想在用户级别打开它时,它返回负数。
我看到的错误是open: File exists
. 我见过这个问题,但这不是我的情况。
ios - 如何获取 Mac OS(和 iOS)中进程的内存使用情况?
在 Linux 中,内核通过 /proc/[pid]/statm 公开各种每个进程的内存计数器,包括
- 项目总规模
- 驻留集大小
- 共享页面
- 文本(代码)
- 数据/堆栈
- 图书馆
- 脏页
Mac OS(和iOS)中这种东西的等价物是什么?我知道 sysctl 接口,但它似乎没有提供等效信息。
我查看了 Mac OS 上的“顶部”输出(由非 root 用户调用),它包含以下内容
- RPRVT - 我们的堆分配消耗的常驻内存量
- RSHRD - 常驻共享内存量(共享库)
- RSIZE - ~等于 RPRVT + RSHRD
- VSIZE - 进程消耗的内存总量(常驻内存和分页内存相结合)
我想知道这些信息是从哪里检索到的。是否有任何其他计数器(类似于 Linux 计数器)不显示在顶部。
iOS 呢?
编辑:请注意,我正在寻找每个进程的内存使用计数器(不是全局系统的)
谢谢!
linux - 如何在 linux proc 文件系统中计算运行队列长度
我正在尝试从 linux 内核获取可运行进程的数量。sar -q 很容易提供此信息。但是我试图从 /proc 文件系统中获取这个值。/proc中没有文件直接给出这个值,那么runq-sz是如何计算的。wiki 页面http://en.wikipedia.org/wiki/Load_(computing)提供了一些关于如何根据 ldavg 值计算运行队列长度的见解,但尚不清楚。有人可以提供更多关于此的指示。干杯
linux - 在现有条目下创建 proc 条目
我的内核模块将在现有的 proc 条目下创建一个条目,例如/proc/sys
,
所以普通的调用proc_create
失败。
然后我尝试通过检查proc_fs.h来查看是否有获取权限parent node
的功能,但无济于事。
我现在该怎么办?
linux-kernel - create_proc_entry() 的替代方法是什么
由于create_proc_entry
功能已被弃用,它的替代品是什么?我试图使用创建一个简单的 proc 条目,create_proc_entry
但出现此错误:
错误:函数“create_proc_entry”的隐式声明</p>
我create_proc_entry
在 proc_fs.h 中找到了它,但在那里没有找到。有什么我遗漏的或有替代方法吗?
linux-kernel - dmesg 没有显示 printk 语句
我正在尝试创建一个 proc 条目。我的 init_module 函数如下
以下是清理方法
程序的其余部分包括变量定义和回调函数。
当我编译这个程序时,它编译得很好。当我使用insmod
它时,它不会回复我提示。
lsmod
列出我的模块和一个人使用的节目(不知道是什么)。
dmesg
不显示上述任何 printk 消息。
你能告诉我这里有什么问题吗?
linux - 将一些命令/配置恢复为默认值
我正在尝试在我的 Ubuntu 12.04 上设置 Squid 代理服务器。有很多关于这方面的教程,我会一一学习,直到成功。
在每个教程中,他们都要求发出如下命令:
如果该特定教程不起作用,我必须将这些(无效)更改恢复为默认值。我的问题是:
- 这些命令是否应该通过终端发出?
- 如果我只是重新启动机器,这些更改会消失吗?
- 如果没有,我该怎么做才能将它们重置为默认值?
- 如果我发现一些命令对我有用(并且如果这些更改在每次重新启动后消失),我如何在每次重新启动后自动应用它们?
请注意,我是一个完整的初学者,有 1 天的 Linux 经验。
linux - 如何在内核中获取当前用户,即如何以正确的方式调用 current->uid
我正在编写可加载内核模块 (LKM) 。如果刚刚执行 cat/proc/ 的用户是当前用户,这个 LKM 需要做一些特殊的事情。所以我想弄清楚如何找到这些信息。我的第一次尝试是使用 cred.h 中定义的 get_current_user()。但这行不通。http://lxr.linux.no/linux+*/include/linux/cred.h#L290我没有在寻找其他方法,这就是我发现的方法似乎没有用如何在编写 Linux 内核模块时获取用户 ID 怎么做我从内核空间调用 Linux 系统调用?
有问题的功能:
gcc 输出: