创建proc文件

首先介绍函数:create_proc_entry(const char *name,mode_t mode,struct proc_dir_entry *base);

name是要创建的文件的名称,

mode是该文件的保护掩码(可传入0表示系统默认值)

base指定该文件所在目录(如果base为NULL,则该文件将创建在/proc的根目录)


关于proc文件的使用在《linu设备驱动程序》P88

首先定义结构体

struct file_operations led = {

  read:proc_read_led,

  write:proc_write_led,

  ioctl:NULL,

};

创建"/proc/LED"文件

proc=create_proc_entry("LED",0777,NULL);

proc->proc_fops = &led;

当用户空间程序调用系统调用read函数读"/proc/LED"的时候就会调用proc_read_led函数

ssize_t proc_read_led(struct file *filp,char *buf,size_t count,loff_t *offp)

{

  char tmp[300];

  int len = 0;

  int speed = 100;

  if(*offp!=0)

      return 0;

  len += sprintf(tmp,"WAN:UP %s\n",speed)

  len += sprintf(tmp+len,"LAN%d:DOWN\n",speed);

  copy_to_user(buf,tmp,len);

  *offp = len;

  return len

}


在用户空间访问"proc/LED"会得到如下结果

#cat /proc/LED

WAN:UP 100

LAN100:DOWN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值