kernel中对文件的读写学习笔记原创

Posted 请给我倒杯茶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kernel中对文件的读写学习笔记原创相关的知识,希望对你有一定的参考价值。

/*1. 头文件 */
#include <linux/init.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/fs.h>
#include <linux/uaccess.h>

MODULE_PARM_DESC(ivar, "module kernel list");



static char buf[] = "aa:aa:aa:aa:aa:aa";
static char readbuf[128];
/* 2.模块的加载函数*/
static int __init hello_init(void)
{
    struct file *fp;
    mm_segment_t fs;
    loff_t pos;


    fp = filp_open("/sys/kernel/pax_ethernet/mac",O_RDWR|O_CREAT,0644);
    if(IS_ERR(fp)){
        printk("create file error\r\n");
        return -1;
    }

    fs = get_fs();
    set_fs(KERNEL_DS);
    pos = 0;
    vfs_write(fp,buf,sizeof(buf),&pos);
    pos = 0;
    vfs_read(fp,readbuf,sizeof(readbuf),&pos);
    printk("Read:%s\r\n",readbuf);
    filp_close(fp,NULL);
    set_fs(fs);
    


    return 0;
}

/* 3.模块的卸载函数*/
static void __exit hello_exit(void)
{
  printk("Bye, drivers!\n");    
}

/*4. 模块的入口和出口*/
module_init(hello_init);
module_exit(hello_exit);

/*5.模块的许可声明*/
MODULE_LICENSE("GPL");

Makefile

ifeq ($(KERNELRELEASE),)
KERNELDIR ?=/home/zhuangzb/project/rk3288-e810-android6.0/kernel #内核路径
PWD :=$(shell pwd)   #当前路径

modules:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
    #cp hello.ko /opt/fs210/filesystem/drivers/ -f
modules_install:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
    rm -rf *.o *~core *.ko *.mod.c .tmp_versions Module.symvers modules.order
else
        obj-m :=kernel_file.o        #生成hello.ko

 

以上是关于kernel中对文件的读写学习笔记原创的主要内容,如果未能解决你的问题,请参考以下文章

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

OS学习笔记四:同步机制

原创 C++笔记--Linux网络编程(15)-socket

python学习day9笔记

LINUX kernel笔记系列 :IO块参数 图

Nodejs 学习笔记 - 同步读写文件