首页
学习
活动
专区
工具
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的虚拟地址来分别表示相应的错误码。

    2K50

    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.7K20

    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、实例代码 经过上面的解释,至少对这个有感觉了吧,写个代码来测试一下,让自己与代码融合为一体,这样才能做到人码合一的境界。

    73621

    linux 内核中READ_ONCE定义

    Linux内核编程中,READ_ONCE 用于确保从内存中读取一个变量的值时,编译器不会对这个读取操作进行优化,从而保证了读取操作的原子性。...这个通常在需要防止编译器优化、多线程或中断上下文中使用,以确保数据的一致性和正确性。...以下是 READ_ONCE 的定义及其解释: #define READ_ONCE(x) (*(volatile typeof(x) *)&(x)) 解释: typeof(x):这是一个GNU扩展,用于获取变量...注意事项: READ_ONCE 仅保证读取操作的原子性和最新性,对于更复杂的并发控制,仍需要使用锁或者其他同步机制。...对于写操作,Linux内核中有对应的 WRITE_ONCE ,其定义方式和用途类似。 通过这种方式,可以在内核编程中更安全地访问共享变量,避免数据竞争和内存一致性问题。

    24610

    Windows客户端CC++编程规范“建议”——

    6   6.1 减少的使用 等级:【建议】 说明:的使用,将使得调试变得麻烦。所以在设计和使用的时候,请确保的逻辑是阅读者不会去关心细节的行为。...6.2 定义中字母需大写 等级:【必须】 说明:为了醒目表示它是一个,而不是一个函数。...6.4 使用枚举代替一系列有关联的 等级:【建议】 说明:比如一个函数返回一系列表示状态的,则应该使用枚举类型替代。...6.5 的参数使用时需要使用括号控制 等级:【要求】 说明:对的参数使用括号控制,可以避免操作符的优先级对逻辑的影响。...6.7 复杂的定义使用do-while控制 等级:【要求】 说明:如果中有复杂的逻辑跳转,或者有临时变量的定义,请使用do-while将内容扩住。这样可以减少对使用的逻辑的影响。

    60530

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

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

    4.4K40

    Linux | 从windows来到Linux,目录操作

    欢迎朋友圈各种姿势的分享 如需转载,请后台联系授权 - 正式开始 - ▼ -01- 打开终端 | ctrl+alt+t 推荐新手使用Ubuntu16.04 LTS的桌面版,在桌面版提供了桌面系统,虽然论速度和便利性与windows...如果你不喜欢Linux提供的桌面环境,可以使用ctrl+alt+F1~F6(F1~F6可以在6个tty之间转换。)转换到CLI下,可以使用clrl+alt+F7回到当前的桌面环境。...-03- cd | 目录操作 首先你应该了解一下Linux下的目录结构,详情可以参考本人另一篇文章 《聊聊Linux工作环境》。 cd命令就是一个切换当前目录的命令。...这里需要解释一下,因为cd是和shell绑在一起的,属于shell的功能,虽然是一个linux命令,但是并没有对应的用户手册,却可以通过help来获得想要的帮助。...-04- ls | list目录内容 当你打开windows的一个文件夹的时候,你会看到各种各样的文件还有子文件夹。

    3.8K30

    Linux笔记】WindowsLinux文件互享

    我们可以使用Windows上的一些编辑器先编辑好代码,然后再传到Linux下进行编译即可。那么,怎么实现WindowsLinux的文件互传呢?可以使用samba,也可以使用一些工具。...也可在以下百度云链接进行下载: 链接:https://pan.baidu.com/s/12_qdcxiNkSI0nHgsW0yWWg 提取码:szcb 3、WindowsLinux互传文件 Windows...与Linux互传文件的前提是要保证Windows要能ping通Linux。...可以看到,左边是我们的Windows目录,右边是我们的Linux目录,然后就可以使用拖拽的方式传输文件了,例如我们把WindowsToLinux.txt这个文件从Windows传到Linux下: ?...LinuxWindows传文件也是类似的。以上就是关于WindowsLinux互传的笔记,如有错误,欢迎指出!

    3.1K10
    领券