首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

Linux kernel中常见的整理

的一些奇技淫巧:https://gaomf.cn/2017/10/06/C_Macro/ 以下是整理的一些linux kernel中的常见,由于不同体系架构,或者不同模块的定义不同,只挑选了其中容易看懂的作为记录...Linux内核中do{...}while(0)意义: 辅助定义复杂的,避免引用的时候出错,如果不用{},if后面的语句只有第一条进行了判断。同时避免展开后“;”造成编译不通过....linux 内核中最常见的使用之一,系统调用 #define SYSCALL_DEFINE1(name, ...)...= PER_LINUX32) PER_LINUX32 = 0x0008,PER_MASK = 0x00ff, /*, * Return the base personality...linux 内核的一些错误码,以它们的负数来作为函数返回值,简单地使用大于等于-4095的虚拟地址来分别表示相应的错误码。

1.7K50

Linux kernel中常见的整理

的一些奇技淫巧: https://gaomf.cn/2017/10/06/C_Macro/ 以下是整理的一些linux kernel中的常见,由于不同体系架构,或者不同模块的定义不同,只挑选了其中容易看懂的作为记录...Linux内核中do{...}while(0)意义: 辅助定义复杂的,避免引用的时候出错,如果不用{},if后面的语句只有第一条进行了判断。同时避免展开后“;”造成编译不通过....linux 内核中最常见的使用之一,系统调用: #define SYSCALL_DEFINE1(name, ...)...= PER_LINUX32) PER_LINUX32 = 0x0008, PER_MASK = 0x00ff, /*, Return the base personality without flags...linux 内核的一些错误码,以它们的负数来作为函数返回值,简单地使用大于等于-4095的虚拟地址来分别表示相应的错误码。

1.4K20

Linux内核container_of的深度剖析

1、前面说的 我在好几年前读linux 驱动代码的时候看到这个,百度了好久,知道怎么用了,但是对实现过程和原理还是一知半解。...container_oflinux内核代码里面使用次数非常非常多,对于喜欢linux编程的同学来说,了解其实现方法,对以后看内核代码,写内核驱动的帮助都非常大,当然,我不是说了解这个就可以为所欲为了...4.5、const int* p的作用 上面的定义里面还有一个小知识点 const typeof( ((type *)0)->member ) *__mptr 上面的代码可以简写成 const int...const int * const __mptr; //表示__mptr不能改变而且指向的内容也不能改变 5、 container_of 剖析 看完上面的几个知识点,再来看container_of这个就显得非常清晰了...6、实例代码 经过上面的解释,至少对这个有感觉了吧,写个代码来测试一下,让自己与代码融合为一体,这样才能做到人码合一的境界。

56721

Linux TraceEvent - 我见过的史上最长定义

可以看到 目录名称sample-trace由TRACE_SYSTEM这个定义,所以通过查找这个,就能知道有多少events的大类 每一个TRACE_EVENT都有一个自己的目录 源文件中trace_XXX...史上最长定义 你以为就这么简单吗?当然不是,作为有多年阅读c语言代码的老司机,看到真正的定义,我都差点没有吐出来。。。 好了,不扯淡了。怎么能很好的解释这个展开的过程呢?还是用一张图吧。...不过相信我,你可能不太会愿意去看这个(捂脸) 回过头来再看这展开,让我们来总结一下这个过程: 一共包含了两个头文件:linux/tracepoint.h 和 trace/define_trace.h 在...或者说,看了可能也不知道这些展开究竟定义了些什么? 帮人帮到底,送佛送到西 既然都帮大家做了展开,那我就干脆再用一张图展示一下这么多定义究竟定义了些什么。 ? ?...经过了一番云里雾里的展开,实际上就是(主要)定义出了这么一个数据结构 -- traceeventcall。

3.8K40

Linux标准错误输出重定向

Linux下” >/dev/null 2>&1 “相关知识说明 在学习Linux的过程中,常会看到一些终端命令或者程序中有”>/dev/null 2>&1 “出现,由于已经遇到了好几次了,为了理解清楚,...command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 & 0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出...(stderr) 1)command : 表示shell命令或者为一个可执行程序 2)> : 表示重定向到哪里 3)/dev/null : 表示linux的空设备文件 4)2 : 表示标准错误输出...2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。...这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

2.5K100

Linux学习 - 管道、标准输入输出

Linux下的标准输入、输出、重定向、管道 在Linux系统中,有4个特殊的符号,’, ‘|’, ‘-‘,在我们处理输入和输出时存在重要但具有迷惑性的作用。...默认Linux的命令的结果都是输出到标准输出,错误信息 (比如命令未找到或文件格式识别错误等) 输出到标准错误,而标准输出和标准错误默认都会显示到屏幕上。...>表示重定向标准输出,> filename就是把标准输出存储到文件filename里面。标准错误还是会显示在屏幕上。 2 >&1 表示把标准错误重定向到标准输出。...Linux终端用2表示标准错误,1表示标准输出。 - (短横线):表示标准输入,一般用于1个程序需要多个输入的时候。 <标准输入,后面可以跟可以产生输出的命令,一般用于1个程序需要多个输入的时候。...unexisted_command 运行这个脚本 # 标准输出和标准错误默认都会显示到屏幕上 ct@ehbio:~$ bash stdout_error.sh I am std output stdout_error.sh

3.6K60

09_Linux基础-SHELL-标准输入与标准输出-重定向-管道

@TOC09_Linux基础-SHELL-标准输入与标准输出-重定向-管道---作业编辑文本文件/home/text/file1,分4行输入bbb bbb bbb、 ddd ddd ddd、aaa aaa...SHELL-标准输入与标准输出学习内容:重定向和文件目录高级操作知识要点输入输出重定向管道及相关配套命令 数据提取及过滤文件差异对比和补丁生成及打补丁标准输入和标准输出知识点1 标准输入和标准输出---...redirect# echo "xxx" >file.txtroot@sanchuang-linux redirect# cat file.txtxxx脚本运行 标准错误输出、标准正确输出 (显示)知识点...3.3 脚本运行 标准错误输出、标准正确输出 (显示)脚本一行一行 从上到下执行root@sanchuang-linux redirect# vim test.shroot@sanchuang-linux...sanchuang-linux redirect# 重定向标准输入 read输入知识点3.8 重定向标准输入 read输入重定向标准输入 read输入(注:用到了tmux)While 循环echo

1.4K10

Linux 内核】内核与微内核架构 ( 操作系统需要满足的要素 | 内核 | 微内核 | Linux 内核动态加载机制 )

文章目录 一、操作系统需要满足的要素 二、内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要...支持多进程 , 每个运行的应用程序进程 , 都可以感觉到有专门的处理器提供系统服务 ; 并发性支持 : 操作系统需要有 执行多个线程的能力 , 线程是独立运行 , 独立调度的最基本单位 ; 二、内核...---- 内核 : 内核代码 编译成 二进制文件 , 内核 运行在 一个 大内核 地址空间 中 , 可以 直接 访问 , 调用 内核代码 , 这种内核优点是 效率高 , 性能强 ; 下图中 , 最上层是..." 系统调用 " , 中间是 " 内核 " , 最下方是 硬件层 ; 内核优点 : 设计简单 , 性能高 ; 三、微内核 ---- 微内核 : 将 操作系统 拆分成 多个 独立功能模块 , 这些...内核动态加载机制 ---- Linux 内核模块动态加载 : Linux 内核 使用了 模块设计 , 可以进行 动态加载 内核模块 ; Linux 内核的 核心实现 , 设备驱动实现 , 可以 编译成一个独立模块

2.5K30

Linux系统下C++标准库函数

atoll()将字符串转换成长整型数 ll=64位 部分系统不支持使用strtol()将字符串转换成整数strtoul( )将字符串转换成无符号整数strtoll( )将字符串转换成长整数(C++11标准及以上...)strtoull()将字符串转换成无符号长整数(C++11标准及以上)strtof()将字符串转换成浮点数(C++11标准及以上)strtod()将字符串转换成双精度数strtold()将字符串转换成长双精度数...float类型处理 已常规方式显示小数%lf对应 doublue类型%e指数形式表示小数%g指数形成更短以指数形式表示 小数更短以小数形式表示%s输出一个字符串%c输入输出一个字符 5、权限控制函数  1)Linux...权限说明  Linux权限说明作用S 提权和降权设置用户权限s 修改我当前组设置组权限t仅所有者可删除权限r 4读取权限w 2写入权限x 1执行权限第一个字母表示d 表明是一个文件夹 l 表明是以一个连接...其他方式表明是一个普通文件第2-4个字母表示所有者的权限第5-7个字母表示所在组的权限第8-10个字母表示其他组的权限 对进程也是有效  对内存也是有效  Linux下 一切皆文件   头文件:  #

1.3K00
领券