proc文件系统是一种虚拟的文件系统,它只存在于内存当中,一般用来在内核中输出一些信息到用户层,通常可以利用其来打印内核程序中的一些调试信息,具体的操作如下代码。

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/uaccess.h>
#include <linux/proc_fs.h>MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("fuyajun1983cn@yahoo.com.cn");// Entries for /proc/gdl and /proc/gdl/memory
static struct proc_dir_entry * mm_proc_mem; //对应目录项
static struct proc_dir_entry * mm_proc_dir;  //对应文件static int mm_write_proc_func(struct file * file, const char  * buffer, unsigned long count, void *        data)
{unsigned char file_name[80];unsigned int   size_to_copy;size_to_copy = count;memset(file_name, 0x0, 80);copy_from_user(file_name, buffer, size_to_copy);printk("%s", file_name);return size_to_copy;
}//----------------------------------------------------------------------------
// Initialize proc filesystem
//----------------------------------------------------------------------------
static int __init mm_procfs_init(void)
{mm_proc_dir = 0;mm_proc_mem = 0;mm_proc_dir = proc_mkdir("gdl",0);//在/proc下创建一个目录if (mm_proc_dir == 0){printk(KERN_ERR "/proc/gdl/ creation failed\n");return -1;}//创建/proc/gdl/memory文件mm_proc_mem = create_proc_entry("memory",S_IFREG|S_IRWXU|S_IRWXG|S_IRWXO,mm_proc_dir);if (mm_proc_mem == 0){printk(KERN_ERR "/proc/gdl/memory creation failed\n");remove_proc_entry("gdl", 0);mm_proc_dir = 0;return -1;}mm_proc_mem->read_proc  = 0;mm_proc_mem->write_proc = mm_write_proc_func;mm_proc_mem->data       = 0;return 0;
}//----------------------------------------------------------------------------
// De-initialize proc filesystem
//----------------------------------------------------------------------------
static int __exit mm_procfs_deinit(void)
{if (mm_proc_dir != 0){if (mm_proc_mem != 0){remove_proc_entry("memory", mm_proc_dir);mm_proc_mem = 0;}remove_proc_entry("gdl", 0);mm_proc_dir = 0;}return 0;
}module_init(mm_procfs_init);
module_exit(mm_procfs_deinit);

转载于:https://my.oschina.net/fuyajun1983cn/blog/263897

proc文件系统编程相关推荐

  1. 使用 /proc 文件系统来访问 Linux 内核的内容

    最初开发 /proc 文件系统是为了提供有关系统中进程的信息.但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置. /proc 文件系统包含了一些目录(用作 ...

  2. 用户空间和内核空间通讯之【proc文件系统】

    今天我们介绍另一种用户内核空间通信的方法:proc文件系统. proc文件系统作为linux提供的一种虚拟文件系统并不占用实际外围存储空间,它仅存在于内存中,系统断电即消失.proc文件系统最开始的设 ...

  3. (转)使用 /proc 文件系统来访问 Linux 内核的内容

    转载网址:http://www.ibm.com/developerworks/cn/linux/l-proc.html 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口/proc 文件系统是 ...

  4. linux PROC文件系统详解

    /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令procinfo能够显示基于其中某些文件的多种系统信 ...

  5. proc文件系统探索 之 以数字命名的目录

    在proc根目录下,以数字命名的目录表示当前一个运行的进程,目录名即为进程的pid.其内的目录和文件给出了一些关于该进程的信息. niutao@niutao-desktop:/proc/6584$ l ...

  6. linux下创建proc文件系统,[转载]Linux下的proc文件系统(转载)

    3.调用proc_register把ent加入proc文件系统(即proc文件树)中. 4.返回ent: proc_register函数 这个函数把一个proc文件加入到proc文件树中,其函数原型如 ...

  7. 初步了解Linux proc文件系统

    proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口. 用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数. 由 ...

  8. 使用proc文件系统

    以下是内核提供的几个重要的proc文件系统接口: (1)read_proc int (*read_proc)(char *page, char **start, off_t offset, int c ...

  9. linux+proc+原理,Linux内核中的Proc文件系统(一)

    (1)/proc文件系统的特点和/proc文件的说明 /proc文件系统是一种特殊的.由软件创建的文件系统,内核使用它向外界导出信息,/proc系统只存在内存当中,而不占用外存空间. /proc下面的 ...

最新文章

  1. 数据库多对多设计方案(贴标签的设计方案)
  2. [转] form.getForm().submit的用法及Ext.Ajax.request的小小区别
  3. AI理论知识整理(10)-向量空间与矩阵(1)
  4. System.out.println(Runtime.getRuntime().availableProcessors());获取cpu核数
  5. 《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?
  6. JavaScript动画知多少?
  7. 软件测试用例_大话软件测试用例要素
  8. Unable to convert MySQL date/time value to System.DateTime
  9. emu8086:汇编语言复制数组案例
  10. kali制作钓鱼网站
  11. 福大2021计算机考研科目,2021计算机考研专业课发生改变的院校情况汇总
  12. 计算机电子表格减法公式,excel表格公式怎么操作
  13. 彻底弄明白Gradle相关配置
  14. 【白嫖系列-怕违规】告别BDWP龟速下载,体验飞一般的感觉
  15. AngularJs:Directive指令用法
  16. Android 高级开发 JNI NDK 介绍与使用
  17. DDoS防御的8种方针详解
  18. 基于html的网页设计毕业论文,个人主页设计(网页设计毕业论文)
  19. python_爬虫_七麦网
  20. OData介绍 (SAP)

热门文章

  1. JSON调试找不到 net.sf.ezmorph.Morpher问题解决
  2. Kubuntu 9.10设置支持文件分级的方法
  3. Leaflet获取可视范围内4个顶点
  4. kubernetes离线一键安装教程
  5. 用 Fiddler 来弥补 Chrome Network 的小缺点
  6. 传统服务化(SOA)与微服务(Micro Service)的融合之道
  7. 美国旧金山之行第一天
  8. UVA227 Puzzle
  9. 一点想法--- 做一个轻便的程序编辑器
  10. object-c 常见问题