首页
学习
活动
专区
工具
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 内核中READ_ONCE宏定义

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

    28210

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

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

    60830

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

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

    4.5K40

    【Linux笔记】Windows与Linux文件互享

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

    3.1K10

    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
    领券