黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 操作系统 >> LINIX UNIX >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]入门文章:教你学会编写Linux设备驱动
      ★★★

入门文章:教你学会编写Linux设备驱动

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-6-28 9:22:08

  /*

  * 这个文件是一个内核模块。

  * 内核模块的编译,加载和卸载在前面已经介绍了。

  * 这个模块的功能是,创建一个字符设备。

  * 这个设备是一块4096字节的共享内存。

  * 内核分配的主设备号会在加载模块时显示。

  */

  /* 开始例行公事 */

  #ifndef __KERNEL__

  # define __KERNEL__

  #endif

  #ifndef MODULE

  # define MODULE

  #endif

  #include

  #include

  #ifdef CONFIG_SMP

  #define __SMP__

  #endif

  MODULE_LICENSE("GPL");

  /* 结束例行公事 */

  #include /* copy_to_user(), copy_from_user */

  #include /* struct file_operations, register_chrdev(), ... */

  #include /* printk()在这个文件里 */

  #include /* 和任务调度有关 */

  #include /* u8, u16, u32 ... */

  /*

  * 关于内核功能库,可以去网上搜索详细资料,

  */

  /* 文件被操作时的回调功能 */

  static int asdf_open (struct inode *inode, struct file *filp);

  static int asdf_release (struct inode *inode, struct file *filp);

  static ssize_t asdf_read (struct file *filp, char *buf, size_t count,loff_t *f_pos);

  static ssize_t asdf_write (struct file *filp, const char *buf, size_t count,loff_t *f_pos);

  static loff_t asdf_lseek (struct file * file, loff_t offset, int orig);

  /* 申请主设备号时用的结构, 在linux/fs.h里定义 */

  struct file_operations asdf_fops = {

  open: asdf_open,

  release: asdf_release,

  read: asdf_read,

  write: asdf_write,

  llseek: asdf_lseek,

  };

  static int asdf_major; /* 用来保存申请到的主设备号 */

  static u8 asdf_body[4096]="asdf_body\n"; /* 设备 */

  static int

  init_module

  (){

上一页  [1] [2] [3] [4] 下一页

文章录入:sygbox    责任编辑:sygbox 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886