proc文件系统5大功能

转载 2007年09月28日 01:40:00
原贴:http://blog.chinaunix.net/u/17030/showart_320926.html


proc文件系统5大功能
在Linux里,你可以使用proc虚拟文件系统来访问各种文件信息,包括当前正在运行的进程和电池状态。Proc文件系统是虚拟的,因为它由内存 创建,并于系统更改的时候动态地更新。要获取系统信息的访问权,你应该使用标准文件API,例如fopen,fread,在proc文件系统里读取适当的 文件。
开始认真考虑

Click here to find out more! <a href="http://ad.cn.doubleclick.net/click%3Bh=v8/3571/3/0/%2a/p%3B101116803%3B0-0%3B0%3B6694709%3B31-1/1%3B20926164/20944057/1%3B%3B%7Esscs%3D%3fhttp%3a%2f%2fwww.site.com" target="_blank"><IMG SRC="http://M1.cn.2mdn.net/123456/banner.gif" WIDTH=468 HEIGHT=60 BORDER=0 ></a>

Proc文件系统的一大特点是测试不需要任何的代码。举个例子来说,要获得系统的CPU信息,你只需要这样做:

cat /proc/cpuinfo

得到的输出是这样的:

processor     : 0
vendor_id      : GenuineIntel
cpu family      : 6
model             : 5
model name  : Pentium II (Deschutes)
stepping        : 2
cpu MHz       : 300.010
cache size    : 512 KB
fdiv_bug      : no
hlt_bug       : no
f00f_bug      : no
coma_bug      : no
fpu           : yes
fpu_exception : yes
cpuid level   : 2
wp            : yes
flags         : fpuvme de psetscmsrpaemce cx8 sep mtrrpgemcacmov pat pse36 mmxfxsr
bogomips      : 598.01

输出结果是易读的,而且很容易在代码中分析。不幸地,不是每种proc文件的格式都一样,因为数据的指令不同,不过它们都是大同小异的。

如果你仔细观察输出,就会发现分析这些字段异常简单。不过,写一个普通proc文件并不是一件容易的事,因为某些字段隔离器可能是另一个proc文件数据的一部分。因此,你需要为每个你需要访问的proc文件专门写一段代码。

虽然输出中的标记行看起来是被空格分隔的,但是实际上它们是被nul字符分隔的。我使用cat命令来显示CPU的信息,cat自动处理内含的nul。不幸地,所有的C库字符串命令不能正确处理,你需要使用memchr这样的命令来处理这些字符串。

下面是你能利用proc文件系统实现的5点非常酷的功能:

1.       进程信息:对 于系统中的任何一个进程来说,在proc的子目录里都有一个同名的进程ID。在这个目录下,你将可以找到以下的条目:cmdline, cwd, environ, exe, fd, maps, mem, root, stat, statm, 以及status。某些信息仅对超级用户账号可见,例如进程根目录。你同样需要超级用户的全县来获取当前的工作目录。到每一个单独的含有现有进程信息的进 程有一些可用的专门链接。对于系统里的任何一个进程来说,都有一个单独的自链接指向进程信息。这个的用处之一就是从进程中获取命令行信息。要实现这一目 的,使用cmdline文件更加可靠。

2.       高级电源管理(APM)信息:如果你需要了解电池状态,你也可以从/proc/apm中获得。它包含了一个确定系统在使用AC还是电池、电池的充电程度以及电池的剩余时间的标记。不过,剩余时间的标记看起来不那么准确。

3.       CPU信息:利用cpuinfo文件,你可以获得CPU当前的准确信息。

4.       负载信息:loadavg文件包含了负载信息。负载是系统被使用的程度。它由3个从0到1变化的数字来行量。其中一个是最高利用率,一个是平均利用率,一个是最低利用率。平均值是最有用的。

5.       系统内存信息:meminfo文件包含了系统内存的详细信息。它显示了物理内存的数量,可用交换空间的数量,空闲内存的数量等等。

你需要注意的一点是,所有cat命令显示的空格分割符都是nul分隔符。那么,举个例子,apm文件包含一条单独的空行,它一定是由nul字符组成的。

从proc文件系统中,你能得到许多系统或进程的信息。正因为如此,你必须为相应的信息配置恰当的权限例如,根和cwd目录应该仅有超级用户能够访问。

 原文地址 http://blog.csdn.net/hldc/archive/2005/04/21/357437.aspx
 

相关文章推荐

proc文件系统功能总览

proc作为一个功能强大的文件系统,能给Linux操作带来很大的方便,希望会对大家有所帮助。        在Linux里,你可以使用proc虚拟文件系统来访问各种文件信息,包括当前正在运行的进程和...

proc文件系统简介

  • 2013-09-26 16:42
  • 41KB
  • 下载

Linux proc 的文件系统的源码分析

proc 的文件系统是linux 里面常用的基于内存的文件系统。linux的内核版本 2.6.18 重要的struct: struct proc_dir_entry { unsigned int...

proc文件系统面面谈

  • 2008-01-19 17:29
  • 44KB
  • 下载

Android下的两个文件系统:proc和sys(一)

Linux层有公共目录。例如ps命令可以看到所有运行的进程信息(进程的UID,PID,内存,CPU等信息)。大多数资源由两个虚拟的文件系统提供: proc filesystem(procfs) :包括...

proc文件系统

  • 2012-09-10 12:21
  • 42KB
  • 下载

proc文件系统读写实验总结

Proc文件系统读写实验 实验如图: 如果之前做过重新编译、安装内核实验,建议新建虚拟机进行该实验。我在实验过程中遇到了几个问题就是因为之前编译安装过内核,而之所以不能继续用该虚拟机归根结底是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)