问题标签 [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.

0 投票
1 回答
498 浏览

c - 是否会在不关闭工作的情况下重新读取 /proc 中正在更新的文件?

我正在重新阅读/proc/stat文件以获取更新的值。首先,我打开文件,读取每一行,关闭文件并重新打开以获取更新的值。我想知道是否需要关闭文件,或者我可以通过寻找文件的开头来达到相同的效果。我写了一个没有关闭文件的代码,而是将文件指针放在文件的开头,它和以前一样工作。但我想知道,将寻求文件的开头保证我会得到更新的信息?

编辑:另一点,我在寻找和阅读之间睡觉。

虽然这个问题不是特定于语言的,但这里是上下文中的实现语言:C、Perl。

编辑

这是我写的代码。

比。

哪一个更可取?

0 投票
1 回答
3410 浏览

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 函数的实现会发生什么?哪个优先于另一个?一个可以被另一个覆盖吗?非常感谢。

0 投票
1 回答
1980 浏览

c - 在 /proc 文件系统中创建的文件的打开系统调用中的负返回值

我在/proc名为“test”的文件中创建了一个文件(它是在内核中创建的)。该文件存在。当我想在用户级别打开它时,它返回负数。

我看到的错误是open: File exists. 我见过这个问题,但这不是我的情况。

0 投票
0 回答
1732 浏览

ios - 如何获取 Mac OS(和 iOS)中进程的内存使用情况?

在 Linux 中,内核通过 /proc/[pid]/statm 公开各种每个进程的内存计数器,包括

  • 项目总规模
  • 驻留集大小
  • 共享页面
  • 文本(代码)
  • 数据/堆栈
  • 图书馆
  • 脏页

Mac OS(和iOS)中这种东西的等价物是什么?我知道 sysctl 接口,但它似乎没有提供等效信息。

我查看了 Mac OS 上的“顶部”输出(由非 root 用户调用),它包含以下内容

  • RPRVT - 我们的堆分配消耗的常驻内存量
  • RSHRD - 常驻共享内存量(共享库)
  • RSIZE - ~等于 RPRVT + RSHRD
  • VSIZE - 进程消耗的内存总量(常驻内存和分页内存相结合)

我想知道这些信息是从哪里检索到的。是否有任何其他计数器(类似于 Linux 计数器)不显示在顶部。

iOS 呢?

编辑:请注意,我正在寻找每个进程的内存使用计数器(不是全局系统的)

谢谢!

0 投票
2 回答
3511 浏览

linux - 如何在 linux proc 文件系统中计算运行队列长度

我正在尝试从 linux 内核获取可运行进程的数量。sar -q 很容易提供此信息。但是我试图从 /proc 文件系统中获取这个值。/proc中没有文件直接给出这个值,那么runq-sz是如何计算的。wiki 页面http://en.wikipedia.org/wiki/Load_(computing)提供了一些关于如何根据 ldavg 值计算运行队列长度的见解,但尚不清楚。有人可以提供更多关于此的指示。干杯

0 投票
1 回答
1598 浏览

linux - 在现有条目下创建 proc 条目

我的内核模块将在现有的 proc 条目下创建一个条目,例如/proc/sys

所以普通的调用proc_create失败。

然后我尝试通过检查proc_fs.h来查看是否有获取权限parent node的功能,但无济于事。

我现在该怎么办?

0 投票
1 回答
16759 浏览

linux-kernel - create_proc_entry() 的替代方法是什么

由于create_proc_entry功能已被弃用,它的替代品是什么?我试图使用创建一个简单的 proc 条目,create_proc_entry但出现此错误:

错误:函数“create_proc_entry”的隐式声明</p>

create_proc_entry在 proc_fs.h 中找到了它,但在那里没有找到。有什么我遗漏的或有替代方法吗?

0 投票
3 回答
28183 浏览

linux-kernel - dmesg 没有显示 printk 语句

我正在尝试创建一个 proc 条目。我的 init_module 函数如下

以下是清理方法

程序的其余部分包括变量定义和回调函数。

当我编译这个程序时,它编译得很好。当我使用insmod它时,它不会回复我提示。 lsmod列出我的模块和一个人使用的节目(不知道是什么)。 dmesg不显示上述任何 printk 消息。

你能告诉我这里有什么问题吗?

0 投票
2 回答
149 浏览

linux - 将一些命令/配置恢复为默认值

我正在尝试在我的 Ubuntu 12.04 上设置 Squid 代理服务器。有很多关于这方面的教程,我会一一学习,直到成功。

在每个教程中,他们都要求发出如下命令:

如果该特定教程不起作用,我必须将这些(无效)更改恢复为默认值。我的问题是:

  1. 这些命令是否应该通过终端发出?
  2. 如果我只是重新启动机器,这些更改会消失吗?
  3. 如果没有,我该怎么做才能将它们重置为默认值?
  4. 如果我发现一些命令对我有用(并且如果这些更改在每次重新启动后消失),我如何在每次重新启动后自动应用它们?

请注意,我是一个完整的初学者,有 1 天的 Linux 经验。

0 投票
2 回答
5867 浏览

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 输出: