proc文件系统的简介

proc目录的文件大小都是0,因为这些文件本身并不存在与硬盘中,也不是一个真实的文件,他只是一接口,当我们去读取这个文件的时候,其实内核并不是去硬盘里面找这个文件,而是映射为内核中的一个数据结构被读取并且格式化成字符串返回给我的,所以尽管我们看到的文件内容字符串,和普通文件一样,但是实际上我们知道这个内容是实时从内核中数据结构来的而不是硬盘中来的。
主要下面介绍什么使用:
一般是用cat命令来查看。 例如cat /proc/devices查看安装的驱动。
在shell中用cat命令结合正则表达式进行处理
还可用文件IO来读取。测试代码如下:
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char **argv)
{
int fd = -1;
char buff[512] = {0};
if(argc !=2)
{
printf("usge: %s version|devices",argv[0]);
return -1;
}
if(!strcmp(argv[1],"-v"))
{
fd = open("/proc/version",O_RDONLY);
}
else if(!strcmp(argv[1],"-d"))
{
fd = open("/proc/devices",O_RDONLY);
}
if(fd<0)
{
perror("open:");
return 0;
}
read(fd,buff,sizeof(buff));
printf("result :%s",buff);
return 0;
}
再简单的介绍下sys文件系统,和proc文件系统一样,都是虚拟文件系统,都在/目录下有一个目录/sys目录。都是不是硬盘中的文件都是内核中的数据结构的可视化的接口。和proc不一样的就是,/proc中的文件只能读,/sys中的文件可读可写的,读/sys中的文件就是获取数据结构的值,而写入/sys就是设置内核中的数据结构的元素的值。为啥需要两个呢?是历史原因,先有proc文件系统来调内核,实际效果也不错。

转载于:https://www.cnblogs.com/lifeng40433/p/9510816.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值