摘要:
1. 概念 ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能,通常以增设 ioctl() 命令的方式实现。 在文件 I/O 中,ioctl 扮演着重要角色,本文将以驱动开发为侧重点,从用户空间到内核空间 阅读全文
摘要:
杂项设备 linux里面的misc杂项设备是主设备号为10的驱动设备 定义头文件<linux/miscdevice.h> 杂项设备的结构体: struct miscdevice{ int minor; //杂项设备的此设备号(如果设置为MISC_DYNAMIC_MINOR,表示系统自动分配未使用的m 阅读全文
摘要:
C 库函数 - sscanf() C 标准库 - <stdio.h> 描述 C 库函数 int sscanf(const char *str, const char *format, ...) 从字符串读取格式化输入。 参数 str -- 这是 C 字符串,是函数检索数据的源。 format -- 阅读全文
摘要:
一.main()函数参数通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C99中main()函数主要形式为:(1).int main(void)(2).int main(int 阅读全文
摘要:
copy_from_user copy_from_user函数的目的是从用户空间拷贝数据到内核空间,失败返回没有被拷贝的字节数,成功返回0. copy_from_user(void *to, const void __user *from, unsigned long n) 1. @*to 将数据拷 阅读全文
摘要:
一、 ioremap() 函数基础概念 几乎每一种外设都是通过读写设备上的相关寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: a -- I/O 映射方式(I/O-mapped) 典型地,如X 阅读全文
摘要:
kmalloc 函数原型: void *kmalloc(size_t size, gfp_t flags); kmalloc() 申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因为存在较简单的转换关系,所以对申请的内存大小有限制,不能超过128KB。 阅读全文
摘要:
一、sprintf() 头文件:#include <stdio.h>作用:将一个格式化的字符串输出到一个目的字符串中,原型:int sprintf(char *str, char * format [, argument, ...]);参数:str为要写入的字符串;format为格式化字符串,与pr 阅读全文
摘要:
1. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度. 这个函数在socket中多用于清空数组.如:原型是memset(b 阅读全文