当前位置:  技术问答>linux和unix

简单的字符设备驱动程序问题

    来源: 互联网  发布时间:2016-04-04

    本文导语:  我写了十分简单的module,只实现read的功能, 测试文件可以如下: int main() { printf("Scull testn"); char buf[20]; int fd=open("/dev/scull0",O_RDWR); printf("fd is %d",fd); read(fd,buf,10); printf("the output is %cn",buf[0]); close(fd); return 0...

我写了十分简单的module,只实现read的功能,
测试文件可以如下:
int main()
{
printf("Scull testn");
char buf[20];
int fd=open("/dev/scull0",O_RDWR);
printf("fd is %d",fd);
read(fd,buf,10);
printf("the output is %cn",buf[0]);
close(fd);
return 0;
}
最后没有正确的读到内容,不解,各位高手帮帮忙
以下是代码(头文件省略了)


static char buffer[]="123456789012345678901234567890";



int scull_trim(Scull_Dev *dev)
{return 0;
}

int scull_open(struct inode *inode,struct file *filp)
{return 0;
}

void scull_release(struct inode *inode,struct file *filp)
{
//MOD_DEC_USE_COUNT;
}

Scull_Dev *scull_follow(Scull_Dev *dev, int n)
{
    return dev;
}



read_write_t scull_read (struct inode *inode, struct file *filp,
                char *buf, count_t count)
{
copy_to_user(buf,buffer,count);
    return count;
}

read_write_t scull_write (struct inode *inode, struct file *filp,const char *buf, count_t count)
{
printk("in write functionn");
    return count;
}

int scull_ioctl (struct inode *inode, struct file *filp,
                 unsigned int cmd, unsigned long arg)
{
return 0;
}


int scull_lseek (struct inode *inode, struct file *filp,
                 off_t off, int whence)
{
return 0;
}
struct file_operations scull_fops = {
    read:       scull_read,
    write:      scull_write,
    open:       scull_open,
    release:    scull_release,
};


int init_module(void)
{
    int result, i;
SET_MODULE_OWNER(&scull_fops);
    result = register_chrdev(0, "scull", &scull_fops);
    if (result 

    
 
 

您可能感兴趣的文章:

  • linux驱动程序如何加版本字符串
  • 字符设备驱动程序问题
  • 请教!关于linux字符驱动程序
  • 自己编写一个简单的字符设备驱动程序以后,改怎么使用它?
  • 在编译字符驱动程序时,为何总是找不到头文件!急......
  • 字符驱动程序的疑问!
  • 请教高手,有关字符设备驱动程序问题
  • 请问在linux下的字符界面下如何使用优盘?需要安装驱动程序吗?
  • 有关ldd中字符驱动程序的scull_devices
  • 字符设备驱动程序编写中,被读写的数据到底应该定义在什么地方?
  • 段错误____书上的最简单字符驱动,生成了模块.另一个测试程序(写1操作).
  • 弱弱的问一个,简单字符设备驱动程序,打开文件错误问题。
  • 第一人入门字符设备驱动程序的问题
  • 参照网上写的一个简单字符驱动程序,为什么只能用一次
  • 简单的字符设备驱动程序居然出错!大家帮忙看看哈^_^
  • 加载混杂字符设备驱动在/dev/下没有出现设备文件,请帮忙分析我程序!
  • 嵌入式系统字符驱动程序(应用)问题(初学),请帮忙回答
  • 字符设备驱动,混杂设备驱动,总线、设备、驱动模型、平台驱动
  • Linux设备驱动(第三版)- 字符设备驱动 - 例子
  • 关于字符驱动的上限
  • Linux 中多个字符设备的驱动问题。
  • 字符型设备驱动生成的块设备
  • 求助 简单测试字符驱动 Cannot allocate memory
  • 如何在内核模块中对linux字符驱动进行读写呢
  • 关于字符设备驱动的一点疑问
  • sybase的JDBC驱动字符串是什么阿??
  • 关于字符设备驱动读写的问题,求助
  • 关于字符驱动struct cdev的问题
  • linux 下简单的字符设备驱动
  • 请教:Solaris10下如何让字符设备驱动在开机自动启动呢?在线等...
  • Linux下写了一个字符设备驱动,找不到设备文件在哪个目录
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Strings(字符串) 成员 size():返回字符串中字符的数量
  • linux和unix iis7站长之家
  • C++ Strings(字符串) 成员 c_str():将字符串以C字符数组的形式返回
  • 请问怎样判断一个字符是中文字符还是英文字符?(空)
  • C++ Strings(字符串) 成员 find():在字符串中查找字符
  • C语言实现输入一个字符串后打印出该字符串中字符的所有排列
  • C++ Strings(字符串) 成员 end():返回一个迭代器,指向字符串的末尾。(最后一个字符的下一个位置)
  • 用Java正则去掉字符串中重复出现的字符
  • C++ I/O 成员 ignore():读取字符并忽略指定字符
  • 字符字符串加法问题?
  • C++ Strings(字符串) 成员 copy():将内容复制为一个字符数组
  • 怎样去掉字符串中的tab字符?
  • C++ Strings(字符串) 成员 rbegin():返回一个逆向迭代器,指向最后一个字符
  • 如何使GDB显示完整的字符串变量,当字符串比较长时。
  • C++ Strings(字符串) 成员 empty():如果字符串为空,返回真
  • 如何将一个双引号”放在一个字符串中,就是在字符串中如何转义一个双引号。谢谢!
  • C++ Strings(字符串) 成员 begin():返回一个迭代器,指向第一个字符
  • php判断字符串在另一个字符串位置的方法
  • C++ Strings(字符串) 成员 data():返回内容的字符数组形式
  • 请教,有关16进制字符串形成2进制字符串的问题!
  • C++ Strings(字符串) 成员 length():返回字符串的长度
  • crtl+alt+F1一直到F6都可以从图形到字符,那么,这和纯粹的字符界面有什么区别,也就是该/etc/initab的值为3后进入的字符界面?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3