linux
文章平均质量分 53
你板子冒烟了
这个作者很懒,什么都没留下…
展开
-
JJJ:内核中常用的遍历链表的宏 /函数
1、list_for_each_entry/** * list_for_each_entry - iterate over list of given type * @pos: the type * to use as a loop cursor. * @head: the head for your list. * @member: the name of the list_head within the struct. */#define list_for_each_entry(pos,原创 2021-10-24 21:01:02 · 321 阅读 · 0 评论 -
查看linux内核版本的一些常用方法
1、内核源码在最外层Makefile顶部几行:VERSION = 4PATCHLEVEL = 1SUBLEVEL = 15EXTRAVERSION =2、命令行命令: uname -a作用: 查看系统内核版本号及系统名称命令: cat /proc/version作用: 查看目录 /proc 下version的信息,也可以得到当前系统的内核版本号及系统名称补充说明: /proc 文件系统,它不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,它以原创 2021-09-23 14:39:04 · 1048 阅读 · 0 评论 -
内核宏定义 ARRAY_SIZE
1、ARRAY_SIZE用来判断一个数组的 size,若传入的参数不是一个数组,编译将会报错。使用此宏来安全的获取一个数组的 size。include/linux/kernel.h#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))2、__must_be_arrayinclude/linux/compiler-gcc.h/* &a[0] degrades to a pointe原创 2021-07-16 21:54:37 · 3409 阅读 · 0 评论 -
printk函数 相关
printk在内核源码中用来记录日志信息的函数,只能在内核源码范围内使用。用法和printf非常相似printf 和 printk 对比printf:glibc实现的打印函数,工作于用户空间printk:内核模块无法使用glibc库函数,内核自身实现的一个类printf函数,但是需要指定打印等级(若不指定就是用默认的打印等级)。printk函数使用在使用printk时我们会将 打印等级/日志级别 放到最开始的位置,如printk(KERN_EMERG "EMERG\n");我们没有..原创 2021-05-01 11:11:54 · 645 阅读 · 2 评论 -
makefile
本质:文件依赖源文件经过编译成为中间代码文件( .o)----->检测语法、函数变量的声明是否正确。中间代码文件经过链接成为可执行文件。----->链接函数、全局变量。反斜杠:行连接符,后面必须紧跟回车换行,才能成功连接下一行。makefile 里面的注释符:#,若要使用 # 号本身,则用 #隐晦规则 / 自动推导:例如,原版objects = main.o kbd.o command.o display.o \ insert.o search.o files.o uti.原创 2020-07-15 23:30:12 · 165 阅读 · 0 评论 -
----getopt()函数
----getopt()函数。英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。再来看一下这家伙的原型:int getopt(int argc,char * const argv[ ],const char * optstring);前两个参数大家不会陌生,没错,就是老大main函数的两个参数!老大传进来的参数自然要有人接着!第三个参数是个字符串,看名字,我们可以叫他选项字符串(后面会说明)返回值为int类型,我们都知原创 2020-06-30 14:34:29 · 224 阅读 · 0 评论