linux驱动程序中怎么做api函数供应用程序调用

 我来答
任明炀loosep
推荐于2017-10-11 · TA获得超过1256个赞
知道小有建树答主
回答量:780
采纳率:0%
帮助的人:420万
展开全部
以下是国嵌教学视频中的部分驱动代码及应用程序代码:
********************************************************************
//memdev.c
static const struct file_operations mem_fops =
{
.owner = THIS_MODULE,
.llseek = mem_llseek,
.read = mem_read,
.write = mem_write,
.open = mem_open,
.release = mem_release,
};
**********************************************************************
//app-mem.c
/*打开设备文件*/
fp0 = fopen("/dev/memdev0","r+");

/*写入设备*/
fwrite(Buf, sizeof(Buf), 1, fp0);

/*重新定位文件位置(思考没有该指令,会有何后果)*/
fseek(fp0,0,SEEK_SET);//调用mem_llseek()定位

/*读出设备*/
fread(Buf, sizeof(Buf), 1, fp0);

调用的函数名与如fopen,fwrite,fread,fseek与file_operation中的指针名open,write.read,llseek不一样,内核是如何知道应该调用哪个函数的?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钊惠夹谷以晴
2020-03-25 · TA获得超过3792个赞
知道小有建树答主
回答量:3087
采纳率:25%
帮助的人:421万
展开全部
linux所有的设备以文件方式让用户使用,一般都在/dev目录下,要操作一个设备就直接读写该设备的文件。
那些文件操作,如open,close,ioctl,read,write,poll等就是驱动提供给用户的接口,编写驱动就是实现这些函数的功能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式