博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
proc文件系统的简介
阅读量:35197 次
发布时间:2020-01-31

本文共 987 字,大约阅读时间需要 3 分钟。

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文件系统来调内核,实际效果也不错。

转载地址:http://kgtnmu.baihongyu.com/

你可能感兴趣的文章
CAS Clients 集成 Spring Security
查看>>
Spring Security CAS认证
查看>>
CentOS查看磁盘空间
查看>>
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x
查看>>
【力扣】88. 合并两个有序数组
查看>>
【力扣】100. 相同的树
查看>>
【力扣】101. 对称二叉树
查看>>
【力扣】104. 二叉树的最大深度
查看>>
【力扣】107. 二叉树的层次遍历 II
查看>>
【作业】第六章课后作业
查看>>
【作业】第四章课后作业
查看>>
【作业】第五章课后作业
查看>>
【力扣】108. 将有序数组转换为二叉搜索树
查看>>
【力扣】110. 平衡二叉树
查看>>
【力扣】111. 二叉树的最小深度
查看>>
【力扣】112. 路径总和
查看>>
【力扣】118. 杨辉三角
查看>>
【力扣】119. 杨辉三角 II
查看>>
【作业】第七章课后作业
查看>>
【作业】第八章课后作业
查看>>