sysfs 惯例调用所有属性来包含一个单个的人可读文本格式的值. 就是说, 只是偶然地很 少需要来创建能够处理大量二进制数据的属性. 这个需要真正地只出现在必须传递数据, 不可动地, 在用户空间和设备. 例如, 上载固件到设备需要这个特性. 当这样一个设备在 系统中遇到, 一个用户程序可以被启动( 通过热插拔机制); 这个程序接着传递固件代码 到内核通过一个二进制 sysfs 属性, 如同在"内核固件接口"一节中所示.

二进制属性使用一个 bin+attribute 结构来描述:

struct bin_attribute { struct attribute attr; size_t size;

ssize_t (*read)(struct kobject *kobj, char *buffer, loff_t pos, size_t size); ssize_t (*write)(struct kobject *kobj, char *buffer, loff_t pos, size_t size);

};

这里, attr 是一个属性结构, 给出名字, 拥有者, 和这个二进制属性的权限, 并且 size 是这个二进制属性的最大大小(或者 0 , 如果没有最大值). read 和 write 方法类似于 正常的字符驱动对应物; 它们一次加载可被多次调用, 每次调用最大一页数据. 对于

sysfs 没有办法来指示最后一个写操作, 因此实现二进制属性的代码必须能够以其他方式 决定数据的结束.

二进制属性必须明确创建; 它们不能建立为缺省属性. 为创建一个二进制属性, 调用: int
sysfs_create_bin_file(struct kobject *kobj, struct bin_attribute *attr); 去除二进制属性可用:

int
sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr);

最新文章

  1. Websocket通讯简析
  2. 稳定灵活的 HTML 列式布局
  3. 一些常用的SQL查询语句
  4. ASP.NET中处理异常的几种方式
  5. 利用ZABBIX的RPC-JSON作API扩展应用示例
  6. Memcached 集群的高可用(HA)架构
  7. DNS 域名系统 (Domain Name System)
  8. POJ 3061 Subsequence 尺取法 POJ 3320 Jessica's Reading Problem map+set+尺取法
  9. ubuntu不能联网的问题
  10. MySQL最基本的概念梳理
  11. C语言博客作业3--函数
  12. servlet 会话管理
  13. Android 提高 gradle 的编译速度
  14. linux下视频转gif
  15. (原)GAN之pix2pix
  16. Thymeleaf select 数据回显 选中
  17. Nginx下轻松开启Drupal简洁链接
  18. 两个java小练习
  19. FFmpeg再学习 -- FFmpeg+SDL+MFC实现图形界面视频播放器
  20. [Ubuntu Setup] Ubuntu 13.04 安装 ia32-libs

热门文章

  1. 用五种不同的布局方式实现“左右300px中间自适应”的效果
  2. oracle怎么捕获表上的DML语句(不包括select)语句)
  3. 阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?
  4. 洛谷P3455 [POI2007]ZAP-Queries (莫比乌斯反演)
  5. php7 新内容
  6. jQuery 图片跟着鼠标动
  7. 胡喜:从 BASIC 到 basic ,蚂蚁金服技术要解决两个基本的计算问题
  8. @codeforces - 1205B@ Shortest Cycle
  9. eBPF Tracing 入门教程与实例
  10. 关于RESTful一些注意事项,和自己整理的接口开发规范