E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Container_of
【学习笔记】【内核】
container_of
的用法
根据结构体变量成员的指针获取整个结构体的指针#include2#include"stdlib.h"#include"string.h"#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(ptr,type,member)({\consttypeof(((type*)0)->member)*__mpt
踏流星
·
2024-02-08 09:26
学习
笔记
Linux内核中
container_of
宏的详细解释
如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了
container_of
宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的
嵌入式与Linux那些事
·
2024-02-07 20:29
Linux内核
Linux
Linux内核
嵌入式软件开发
C语言
驱动开发
嵌入式Linux_驱动开发:offset宏和
container_of
宏
今天学习了两个Linux内核中两个宏定义,下面逐步分析宏的作用。1.获取结构体元素的偏移量:offsetof宏#defineoffsetof(TYPE,MEMBER)((int)&((TYPE*)0)->MEMBER)第一步:0地址转为(TYPE*)0这是一个强制类型转换,把0地址强制类型转换成一个TYPE指针,这个指针指向一个TYPE类型的结构体变量。(实际上这个结构体变量可能不存在,但是只要我
Mr_WangAndy
·
2024-02-07 20:29
嵌入式Linux_驱动开发
驱动开发
C语言
offsetof宏
container_of宏
linux container 作用,linux
container_of
宏作用
在学习Linux驱动的过程中,遇到一个宏叫做
container_of
。
范奕信
·
2024-02-07 20:59
linux
container
作用
【Linux】
container_of
宏
container_of
宏假设有一个structperson,其定义如下:structperson{intage;char*name;}p;只用age或name上的指针就可以检索包装(包含)该指针的整个结构
PannLZ
·
2024-02-07 20:57
Linux系统之路
linux
驱动开发
运维
c语言
linux驱动开发之常见面试问题
什么是
container_of
如何给应用层提供接口什么是ioctl?如何在shell下调用驱动如何解决内核启动时卡死问题简述MMU的工作原理新增驱动的基本操作先在设备树里新建一个节点,填写comp
墨染 锦年
·
2024-02-07 07:52
Linux
内核驱动
C语言学习
linux
驱动开发
面试
Linux设备驱动开发学习笔记(等待队列,锁,字符驱动程序,设备树,i2C...)
container_ofcontainer_of函数可以通过结构体的成员变量检索出整个结构体函数原型:/*pointer指向结构体字段的指针container_type结构体类型container_field结构体字段名称返回值是一个指针*/
container_of
【linux嵌入式】玩家
·
2024-01-19 11:19
LInux嵌入式
linux
驱动开发
学习
嵌入式硬件
嵌入式软件
android
结构体的几个知识点
如何记住
container_of
的用法记住
container_of
的一个方法是将其视为一个宏,它接受三个参数:指向成员变量的指针、结构体类型和成员变量的名称。
HUI的技术笔记
·
2024-01-15 15:22
c++
【linux】工作队列简单示例
staticstructwork_datamy_work_struct;staticvoidwork_handler(structwork_struct*work){structwork_data*wdata=
container_of
Yengi
·
2023-12-29 06:09
test
linux
运维
服务器
【Linux API 揭秘】
container_of
函数详解
文章目录1、
container_of
函数介绍2、
container_of
函数实现2.1static_assert2.2__same_type2.3(type*)02.4offsetof2.5container_of3
dong__ge
·
2023-12-22 13:51
Linux
API接口详解
linux
Linux驱动开发
Linux内核开发
LinuxAPI
iot
linux驱动开发中常用函数--
container_of
的用法及分析
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/xi_xix_i/article/details/134625972目录1.开发环境2.container_of用法简介3.container_of详解4.container_of测试1.开发环境linux4.192.container_of用法简介
lagransun
·
2023-12-18 11:43
Linux驱动开发常用函数
linux
驱动开发
运维
嵌入式C语言自我修养 (04):Linux 内核第一宏:
container_of
4.1typeof关键字ANSIC定义了sizeof关键字,用来获取一个变量或数据类型在内存中所占的存储字节数。GNUC扩展了一个关键字typeof,用来获取一个变量或表达式的类型。这里使用关键字可能不太合适,因为毕竟typeof还没有被写入C标准,是GCC扩展的一个关键字。为了方便,我们就姑且称之为关键字吧。通过使用typeof,我们可以获取一个变量或表达式的类型。所以typeof的参数有两种形
宅学部落-王利涛
·
2023-11-28 03:36
嵌入式C语言自我修养
嵌入式
C视频教程
Linux
GNU
C语法
C语言教程
搞懂它,就可以把结构体玩活了~
正文大家周末好,我是bug菌~今天主要是跟大家详细聊聊
container_of
这个宏定义,非常经典的宏,只是一直没有抽时间细细品味,今天就跟大家一起来看看有何神奇之处:1offsetof首先我们需要简单看看
最后一个bug
·
2023-11-16 05:30
算法
container_of
解析及应用
container_of
是一个C语言中比较少见,但实际经常用到的宏,在Linuxkernel中也有大范围的应用。
weymin
·
2023-10-25 12:55
优雅C语言系列
c语言
kernel
linux
zephyr
根据结构体成员变量的地址得出结构体的首地址(offsetof、
container_of
)
关于offsetof()、
container_of
()函数详解一、前言二、offsetof()函数详解三、
container_of
()函数详解五、一个实例四、总结一、前言最近在看linux驱动时偶然间发现了这两个宏函数
思识己
·
2023-10-22 18:18
Linux
C语言
指针
linux
驱动程序
嵌入式C语言自我修养《GNU C编译器扩展语法》学习笔记
目录一、C语言标准和编译器二、指定初始化三、宏构造“利器”:语句表达式四、typeof与
container_of
宏五、零长度数组六、属性声明:section七、属性声明:aligned一、C语言标准和编译器
ssz__
·
2023-10-16 21:11
嵌入式工程师自我修养
c语言
学习
笔记
gnu
linux
linux内核中的offsetof、
container_of
、双链表list.h实践
先直接上程序,代码中包含了注释已经说清楚。在linux的应用层中编译、测试:感谢李慧芹的B站课程:史上最强最细腻的linux嵌入式C语言学习教程【李慧芹老师】_哔哩哔哩_bilibili#include#include//下面的宏来自于:#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(ptr,
dijkstar
·
2023-10-11 11:40
linux
list
offsetof和
container_of
学习
#include#include//#include#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(PTR,TYPE,MEMBER)({\consttypeof(((TYPE*)0)->MEMBER)*__mptr=(PTR);\(TYPE*)((char*)__mptr-offsetof(T
云端之上___
·
2023-09-28 20:33
Linux
container_of
() 宏定义
container_of
宏今天遇到了一段这样的代码,大致意思是通过该struct结构体变量的成员的地址来反推该struct结构体变量的地址并且用到了内核的宏,
container_of
()staticinlinestructnova_inode_info
_llc
·
2023-09-25 23:17
linux
kernel
linux
运维
服务器
数组&字符串&结构体&共用体&枚举
目录前言一、程序中内存从哪里来二、C语言的字符串类型三、字符串和字符数组的细节四、C语言之结构体四、offsetof宏与
container_of
宏五、共用体六、大小端模式七、枚举前言数组、字符串、结构体
小嵌同学
·
2023-09-03 10:02
C语言高级专题系列
arm
单片机
stm32
物联网
mcu
container_of
函数用法
例二:它的作用显而易见,那就是根据一个结构体变量中的一个域成员变量的指针来获取指向整个结构体变量的指针。比如,有一个结构体变量,其定义如下:structdemo_struct{type1member1;type2member2;type3member3;type4member4;};structdemo_structdemo;同时,在另一个地方,获得了变量demo中的某一个域成员变量的指针,比如:
ebayboy
·
2023-08-22 10:10
container_of
c语言中根据结构体成员的指针获取整个结构体的指针
container_ofc语言中根据结构体成员的指针获取整个结构体的指针#definecontainer_of(ptr,type,member)({\consttypeof(((type*)0)->member)*__mptr=(ptr);\(type*)((char*)__mptr-offsetof(type,member));\})宏的参数解释:ptr:指向结构体成员的指针。type:结构体的
CW96
·
2023-07-16 13:06
c语言
【linux内核】
container_of
/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember.*@type:thetypeofthecontainerstructthisisembeddedin.*@member:thenameofthememberwithinthestruct.**/#definec
程序员之一
·
2023-07-15 13:18
C语言
linux内核
编程
linux
c语言
container_of
根据成员变量获得包含其的对象的地址!
写在前面本系列文章的灵感出处均是各个技术书籍的读后感,详细书籍信息见文章最后的参考文献
CONTAINER_OF
在书中发现一个很有意思的宏,以此可以衍生出来其很多的用法,这个宏可以根据某个成员变量的地址得到包含这个成员变量地址的对象的地址
shenmingik
·
2023-06-10 12:44
好用的函数
好用的函数
LINUX之
container_of
解析
1.container_of宏的定义及实现1>
Container_of
在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址
Ho_pe
·
2023-04-10 20:32
linux
【Linux内核链表】的原理及使用方式整理
本期主题:讲清Linux内核链表的使用方式,包括:双链表原理以及内核中双链表的使用方式解析内核常用宏(offset_of、
container_of
)的原理解析内核链表的使用方式(list_entry、list_for_each
浪矢杂谈
·
2023-04-08 17:32
linux设备驱动开发
算法与数据结构
链表
linux
数据结构
container_of
()一个在内核中经常使用的宏
container_of
()是一个在内核中经常使用的宏,用于获取一个结构体指针所在它所属的结构体的指针。
最后一个bug
·
2023-03-11 03:27
arm开发
linux
数据结构
算法
嵌入式硬件
内核中一些重要宏
阅读源码的过程中有大量使用到宏,所以作为开篇,其中有很多宏功能极其强大但也很晦涩难懂,本文不对宏思路做细致分析,因为网上基本上都能找得到,那么这篇应该算一个索引吧,只是为了本人记忆及查找方便
container_of
柯基是只dog
·
2023-02-07 12:21
linux 内核
container_of
() 宏函数 原理详解
container_of
()宏函数源码:/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember
JEFF_张
·
2023-02-02 23:27
多态性在C++和Linux内核中的实现共性和区别
Linux内核中普遍使用了这种思想,比如
container_of
可以通过一个基类对象得到它的子类对象。而设备驱动
papaofdoudou
·
2022-02-07 07:18
数学
嵌入式系统
c++
linux
开发语言
链表
定义//include/linux/types.hstructlist_head{structlist_head*next,*prev;};原理linux内核中的链表,是使用了
container_of
宏实现的
竹园笔客
·
2022-01-09 16:11
C语言宏函数container of()简介
在linux内核编程中,会经常见到一个宏函数
container_of
(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???
·
2021-12-19 13:45
Linux内核宏
Container_Of
的详细解释
目录1.结构体在内存中是如何存储的2.container_of宏3.typeof4.(((type*)0)->member)5.consttypeof(((type*)0)->member)*__mptr=(ptr);6.offsetof(type,member))7.(type*)((char*)__mptr-offsetof(type,member))8.举例1.结构体在内存中是如何存储的in
·
2021-09-10 10:10
C语言container of()函数案例详解
在linux内核编程中,会经常见到一个宏函数
container_of
(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???
·
2021-08-26 14:43
linux内核编程container of()函数介绍
前言在linux内核编程中,会经常见到一个宏函数
container_of
(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?
·
2021-07-27 18:40
Linux内核中
container_of
宏的详细解释
如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了
container_of
宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的
Carlos0321
·
2020-12-26 21:15
c
Linux内核中
container_of
宏的详细解释
如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了
container_of
宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的
Carlos0321
·
2020-12-21 11:26
c
typeof关键字
typeof关键字
container_of
(ptr,type,member)中包含typeof关键字,我们在这分析一下typeoftypeof关键字是C语言中的一个新扩展。
徐行而致--浅唱而归
·
2020-09-16 21:02
C/C++
container_of
理解
关于
container_of
见kernel.h中:/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember
njsssch
·
2020-09-15 11:06
linux驱动开发
container_of
理解
关于
container_of
见kernel.h中:/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember
njsssch
·
2020-09-15 11:06
linux驱动开发
container_of
详解
container_of
详解
container_of
宏是用在已知一个struct中的元素地址,计算出此元素所在结构体的首地址。
OneGit
·
2020-09-13 08:23
Linux
linux
c
contain_of 宏的理解
container_of
()宏功能:获得“包含某个结构成员的结构”的指针。即根据一个结构体变量中的一个域成员变量的指针来获取指向整个结构体变量的指针。
土麦
·
2020-09-12 03:16
话说Linux内核链表之“
container_of
“(二)
一、"
container_of
"简介Linux内核中,"
container_of
“宏的使用时无处不在的。它的功能是:通过传入的结构体成员的地址、结构体类型以及成员的名字,返回对应结构体变量的起始地址。
xie0812
·
2020-08-26 08:11
Linux内核数据结构
内核
链表
详解
container_of
container_of
宏在linux中的应用非常广泛,几乎随处可见,它的作用是通过一个结构体成员的地址来获得这个结构体的首地址。
板砖先生
·
2020-08-24 08:28
Linux
kernel
list_for_each_entry和list_for_each_entry_safe
看内核代码都会发现,内核链表的操作常用的二个宏list_for_each_entry和list_for_each_entry_safe循序渐进,先从最底层的函数
container_of
函数说起,其内核定义如下
菜鸟别浪
·
2020-08-23 01:41
linux
container_of
的使用
contanier_of是Linux内核中常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体的地址正确的使用如下:#include#include#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(ptr,type,member
XiaoCk_Linux
·
2020-08-22 09:06
Linux下驱动开发
list_entry通俗理解方法
大家都知道list_entry时kernel里面经常遇到的一个函数,其定义为:#definelist_entry(ptr,type,member)\
container_of
(ptr,type,member
laughing_zou
·
2020-08-18 18:10
系统架构
platform_set_drvdata()/platform_get_drvdata()/
container_of
()
platform_set_drvdata(structplatform_device*pdev,void*data)platform_get_drvdata(conststructplatform_device*pdev):驱动中常用到platform_set_drvdata和platform_get_drvdata这两个函数,用于保存局部变量:include/linux/platform_dev
angle_birds
·
2020-08-15 13:48
linux
platform_set_drvdata()/platform_get_drvdata()/
container_of
()【转】
本文转载自:http://blog.csdn.net/angle_birds/article/details/8443695platform_set_drvdata(structplatform_device*pdev,void*data)platform_get_drvdata(conststructplatform_device*pdev):驱动中常用到platform_set_drvdata
anfeng3664
·
2020-08-15 13:48
container_of
(ptr, type, member)
(ptr);/448(type*)((char*)__mptr-offsetof(type,member));})成员变量对应的变量的地址-偏移member:成员变量ptr:成员变量对应的变量的地址.
container_of
u010550992
·
2020-08-15 08:27
driver
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他