首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#ifdef printk& file_operations(..,..),ssize_t函数,printk()

#ifdef printk& file_operations(..,..),ssize_t函数,printk()
EN

Stack Overflow用户
提问于 2010-12-16 00:19:50
回答 1查看 202关注 0票数 0

嗨,我有几个问题。如果有人能回答:)我正在尝试为lcd 16X2模块编译linux驱动程序,我会很高兴。我试图在我的代码中使用结构体file_operations();1.从其他代码中我注意到他们添加了#ifdef KERNEL21来编译。我试着这样做,我得到的错误要少得多。为什么是这样的。我正在使用内核2.6.18-128.4.1.el5..所以我需要改成#ifdef KERNEL26吗?如果我尝试做soo,我会得到更多的错误。

2.一些file_operation参数是rtuen ssize_t的函数。这是什么意思?在其他代码示例中,也有"#ifdef KERNEL21“,但我仍然得到一个错误:"lcd_module.c:74: error: expected orג(גotherג{גtoken”

3.最后一个问题,我使用了一个Makfile示例,我得到的是.o文件,而不是im使用的.ko文件。如何使用.o文件运行模块?

提前感谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-16 06:47:25

ssize_t基本上是一个带符号的size_t,在内核中被广泛使用,因为小于零的值用于在需要无符号大小的地方返回错误。例如,read文件操作应该返回读取的字节数,但是在内存不足的情况下,您可以返回-ENOMEM,并且将在用户空间程序中适当设置errno

在2.6内核中,您应该使用kernel-headers包中的Makefile,而不是手工创建的Makefile,并且它生成的是.ko文件而不是.o。更多信息请点击这里:http://www.cyberciti.biz/tips/build-linux-kernel-module-against-installed-kernel-source-tree.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4452207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档