zoukankan      html  css  js  c++  java
  • Proc-fs 编程

    一、简介

    Proc文件系统是Linux系统上的一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。

    基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。为了查看及使用上的方便,这些文件通常会按照相关性进行分类存储于不同的目录甚至子目录中, 如/proc/scsi目录中存储的就是当前系统上所有SCSI设备的相关信息,/proc/N中存储的则是系统当前正在运行的进程的相关信息,其中N为正在运行的进程(可以想象得到,在某进程结束后其相关目录则会消失)。


     二、API

    1、基本的proc文件系统的目录或文件的添加、删除

    struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);
    struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode, struct proc_dir_entry *parent);
    struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent);
    struct proc_dir_entry *proc_create(const char *name, mode_t mode, struct proc_dir_entry *parent, const struct file_operations *proc_fops)
    struct proc_dir_entry *proc_create_data(const char *name, mode_t mode, struct proc_dir_entry *parent, const struct file_operations *proc_fops, void *data);
    void remove_proc_entry(const char *name, struct proc_dir_entry *parent);

    2、特殊的proc文件的添加

    1)/proc/net/

    struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name, struct proc_dir_entry *parent);
    void proc_net_remove(struct net *net, const char *name);
    struct proc_dir_entry *proc_net_fops_create(struct net *net, const char *name, mode_t mode, const struct file_operations *fops);

    2)/proc/sys/

    三、实例

  • 相关阅读:
    struts1:(Struts)ActionForm类及表单数据验证
    前端基础
    JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
    vue+webpack一些知识
    gulp简单使用小记
    如何在Github Pages搭建自己写的页面?
    十大名茶
    中国六大茶类
    从零开始用gulp
    15 个有趣的 JavaScript 与 CSS 库
  • 原文地址:https://www.cnblogs.com/274914765qq/p/4779423.html
Copyright © 2011-2022 走看看