【linux】驱动程序创建和读写进程文件

代码框架如下, my_proc_file_read,my_proc_file_write等完整代码参见http://download.csdn.net/detail/iwtg/5222961

static struct proc_dir_entry *my_proc_entry;

static char *cookie_pot;      // Space for my_proc_file strings 
static int   cookie_index;    // Index to write next my_proc_file 
static int   next_pos_index;  // Index to read next my_proc_file   

int init_my_proc_file_module( void ) 
{ 
    int ret = 0;  

    cookie_pot = (char *)vmalloc( MAX_COOKIE_LENGTH );
    if (!cookie_pot) 
    { 
        ret = -ENOMEM; 
    } 
    else 
    { 
        memset( cookie_pot, 0, MAX_COOKIE_LENGTH ); 
        my_proc_entry = create_proc_entry("my_proc_file", 0644, NULL ); 
        if (NULL == my_proc_entry) 
        { 
            ret = -ENOMEM;
            vfree(cookie_pot); 
            printk(KERN_INFO "my_proc_file: Couldn't create proc entry."); 
        } 
        else 
        { 
            cookie_index              = 0;
            next_pos_index            = 0; 
            my_proc_entry->read_proc  = my_proc_file_read;   
            my_proc_entry->write_proc = my_proc_file_write; 
            //my_proc_entry->owner      = THIS_MODULE; 

            printk(KERN_INFO "my_proc_file: Module loaded."); 
        } 
    } 

    return ret; 
} 

void cleanup_my_proc_file_module( void ) 
{ 
    remove_proc_entry("my_proc_file", NULL); 
    vfree(cookie_pot); 
    printk(KERN_INFO "my_proc_file: Module unloaded.\n"); 
} 


 

makefile

obj-m=myprocfile.o

KERNELDIR := /lib/modules/`uname -r`/build 
PWD := $(shell pwd) 

modules: 
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules 

modules_install: 
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install 


 

测试结果

root@ubuntu:/home/code/myprocfile# echo "xxx111111111111111111111111" > /proc/my_proc_file 
root@ubuntu:/home/code/myprocfile# echo "xxx222222222222222222222222" > /proc/my_proc_file
root@ubuntu:/home/code/myprocfile# echo "xxx333333333333333333333333" > /proc/my_proc_file                         
root@ubuntu:/home/code/myprocfile# cat /proc/my_proc_file                                  
xxx333333333333333333333333
root@ubuntu:/home/code/myprocfile# cat /proc/my_proc_file 
xxx111111111111111111111111
root@ubuntu:/home/code/myprocfile# cat /proc/my_proc_file 
xxx222222222222222222222222
root@ubuntu:/home/code/myprocfile# cat /proc/my_proc_file 
xxx333333333333333333333333
root@ubuntu:/home/code/myprocfile# cat /proc/my_proc_file 
xxx111111111111111111111111
root@ubuntu:/home/code/myprocfile# 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值