Hello,World驱动之旅,用户层简单交互(三)

目录

(一)上篇回顾:上一篇讲到用户层怎么与驱动模块进行交互。Hello,World驱动之旅,对外接口(二)-优快云博客

(二)通过简单程序与驱动交互

读操作,代码如下:

写操作,代码如下:

主函数如下:

(三)编译源码指令:gcc test.c -o test

(四)执行指令:./test

(五)源代码如下


(一)上篇回顾:上一篇讲到用户层怎么与驱动模块进行交互。Hello,World驱动之旅,对外接口(二)-优快云博客

1.通过insmod加载驱动

2.通过指令echo指令对驱动文件节点进行写操作

3.通过指令cat对驱动文件节点进行读操作

4.驱动底层记录写入次数,并通过cat读操作反馈出来。

(二)通过简单程序与驱动交互

前文已经通过指令echo、cat与驱动模块进行了交互,接下来我们通过简单的C语言程序与驱动程序进行交互。

读操作,代码如下:

int sys_files_read(char *path,char *buf,int len){
    int ret;
    int fd;
    if(NULL == buf){
        return -1;
    }
    //打开文件
    fd = open(path, O_RDONLY);    
    if(fd > 0){
        //读文件
        ret = read(fd, buf, len);
        if(ret<0){
            close(fd);
            return -2;
        }
        //关闭文件
        close(fd);
        return ret;
    }else{
        return -3;
    }
}

open、read、close为linux系统调用,通过指令“man 2  xxxx”可以查看具体系统调用用法,包括头文件、参数、返回值、错误码等。xxx即为open、read、write等,示例指令如下:

写操作,代码如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值