- 博客(20)
- 收藏
- 关注
原创 多层联合体(union)的初始化赋值
在C语言中,多层联合体(union)的初始化赋值可以通过直接初始化嵌套的联合体实现。联合体是一种特殊的数据类型,它能够存储不同的数据类型,但同一时间只能存储其中一个数据类型的值。初始化时,我们使用了结构体样式的初始化(designated initializer)来指定初始化。这样可以避免可能的混淆和歧义。注意,联合体的大小由其最大成员的大小决定,所以在这个例子中,都被正确地设置了,尽管它们分别属于不同的数据类型。联合体,并且给它的嵌套联合体。包含了整型和字符型成员。函数中,我们初始化了。
2024-04-24 15:27:42
884
原创 Linux 5.8 spinlock.h
在 Linux 5.8 内核中,自旋锁的实现进行了一些优化,包括减少自旋时的内存占用,减少不必要的内存屏蔽,以及优化了自旋锁的调度策略。函数来获取和释放自旋锁。在获取锁之前和释放锁之后,我们不能执行可能导致进程睡眠的操作,因为那样可能会导致死锁或性能问题。Linux 5.8 内核引入了自旋锁的一些新特性和改进。自旋锁是一种用于防止多线程并发访问共享资源的同步机制。在这个示例中,我们首先包含了必要的头文件。,然后定义了一个自旋锁。
2024-04-22 19:31:52
466
1
原创 linux atomic
对其进行自增和自减操作。这些操作是原子的,意味着它们不会被线程调度器中断,从而保证了在并发环境下的数据一致性。这种方式适用于计数这样的简单场景,但对于更复杂的同步需求,可能需要使用其他同步机制,如自旋锁、读写锁或信号量。在Linux 5.8内核中,线程间同步和变量保护通常通过原子操作、自旋锁、读写锁、信号量等同步机制来实现。以下是一个简单的例子,展示了如何使用原子操作来保护线程间的变量。在这个例子中,我们定义了一个全局的原子变量。
2024-04-22 19:29:28
461
原创 linux timer.h
/ 在1000毫秒后首次触发。// 重新调度定时器,例如在1秒后再次触发。// 初始化定时器,设置服务函数和到期时间。// 删除定时器,防止再次触发。// 定时器服务函数。
2024-04-22 19:28:32
371
原创 git format-patch命令介绍
git format-patch的使用1.在dev1分支上,打出所有dev1分支在master分支基础上的patchgit format-patch master结果为d1c1.patch ,d1c2.patch2.在dev1分支上,打出所有dev1分支的所有patchgit format-patch –root dev1结果为mc1.patch,d1c1.patch ,d1c2.patch3.在dev2分支上,打出所有dev2分支在master分支基础上的patchgi
2022-03-21 15:25:47
5711
原创 WSL编译linux-5.16.9 时出现 fatal error: libelf.h: No such file or directory
make时出现两个错误,第一个是 <stdin>:1:10: fatal error: libelf.h: No such file or directory下载代码:The Linux Kernel Archives编译linux步骤:1. make menuconfig //不需要配,为了得到.configure2. make解决办法:sudo apt-get install libelf-dev安装时却出现:Depends: libelf1 (= 0.158-0ub
2022-03-03 22:39:00
5273
原创 ubuntu20.04 LTS 更换国内163源、阿里源、清华源、中科大源
Ubuntu 20.04 是 Ubuntu 的第 8 个 LTS 版本,其重大更新和改进将在 2030 年前终止,计划于2020年 4 月 23 日发布。国内有很多Ubuntu的镜像源,有阿里的、网易的,教育网的比如:清华源、中科大源。这里以网易163源为例看一下如何修改Ubuntu 20.04的默认源。第一步:备份源文件:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup第二步:编辑/etc/apt/sources.l...
2022-01-06 20:09:10
3428
2
原创 benchmark
转载lmbench内存延迟测试代码分析stormbm2018-05-105437浏览量简介:lmbench有很多测试集, lat_mem_rd是用来测试内存延迟的 # 使用方法 ./bin/x86_64-linux-gnu/lat_mem_rd 1 16 #./bin/x86_64-linux-gnu/lat_mem_rd 1(范围, 单位M) 16(步长) "stride=16 0.00049 1.584(单位M, 512字节范围内, 步长16访问延迟, 为什么显示lmbench有很...
2021-10-12 15:24:11
343
转载 error: ‘for’ loop initial declarations are only allowed in C99 mode (改Makefile)
c – 强制C99在CMake(使用’for’循环初始声明)2019-04-25C&C++编程之家https://www.jb51.cc编程之家收集整理的这篇文章主要介绍了c – 强制C99在CMake(使用’for’循环初始声明),编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。我一直在寻找便携式方式来强制CMake启用编译器的C99功能,以避免以下gcc错误:error: ‘for’ loop initial declarations are...
2021-09-06 17:40:53
699
转载 AES-GCM
AES:设AES加密函数为E,则 C = E(K, P),其中P为明文,K为密钥,C为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C。AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同。AES算法属于典型的对称算法。AES算法具体.
2021-08-31 00:12:26
1916
转载 RSA密钥长度、明文长度和密文长度
RSA密钥长度、明文长度和密文长度本文整理RSA加解密中必须考虑到的密钥长度、明文长度和密文长度问题知识,对第一次接触RSA的开发人员来说,RSA算是比较复杂的算法,以后还会补充几篇RSA基础知识专题文章,用最简单最通俗的语言描述RSA,既方便自己温习,也方便各位新入门的朋友参考,其实RSA算法应用也很简单,RSA的复杂度是因为数学家把效率和安全也考虑进去的缘故。本文先只谈密钥长度、明文长度和密文长度的概念知识,RSA的理论及示例等以后再谈。提到密钥,我们不得不提到RSA的三个重要大数:公钥指数
2021-08-27 09:41:21
6045
转载 Linux内核 runtime_PM 框架
Linux内核 runtime_PM 框架runtime PM (runtime power management) 简介:怎样动态地打开关闭设备的电源 ? 最简单的方法:在驱动程序中,open时打开电源,在close时关闭电源。但是有一个缺点,当多个App使用该设备时可能造成干扰。解决方法:给驱动添加计数值,当该值大于0时打开电源,等于0时关闭电源。多在ioctl中进行控制,例如alsa的驱动代码runtime PM只是提供辅助函数,比如:(1).增加计数/减少计数(2).使能r
2021-08-23 17:36:53
2976
转载 ICMP包文浅析
ICMP包文浅析https://www.cnblogs.com/iiiiher/p/8513748.htmlIP数据包报头(IPV4和IPV6比较)每行32bit,4字节,前5行一共20字节version:版本号,4bit IHL:IP头部长度,4bit type of service:服务类型,标记/识流量,8bit total length:IP数据包总长度,16bit identification:在网络层区分流量,不同流量产生不同的标识符,流量重组,16bit flag
2020-12-10 13:58:21
3861
原创 linux 命令ls /du用法
copyhttps://www.cnblogs.com/xueqiuqiu/p/7635722.htmlls的用法ls -l |grep "^-"|wc -l或find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的。ls -lR|grep "^-"|wc -l 查看某文件夹下文件夹的个数,包括子文件夹里的。ls -lR|gr...
2019-08-27 15:59:47
260
翻译 协议栈的部分笔记 -- ARP条目的类型
复制https://www.2cto.com/kf/201804/734992.htmlARP条目的类型:? 1 2 3 4 5 6 7 8 /* ARP Flag values. */ #define ATF_COM 0x02 /* completed entry (ha...
2019-08-15 17:37:12
411
原创 linux学习文档
汇总:链接:http://pan.baidu.com/s/1pLk8SSr 密码:p6b6,如有帮助,还请不吝“推荐”。1.《1、2序和硬件基础.pdf》,链接:http://pan.baidu.com/s/1kVFjoTh 密码:powh;2.《3中断机制.pdf》,链接:http://pan.baidu.com/s/1jIC31l0 密码:fbla;3.《4进程描述.pdf》...
2019-07-31 11:28:10
431
1
转载 vim 常用配置
1、安装NERDTreehttps://my.oschina.net/VASKS/blog/388907最新的版本 https://github.com/scrooloose/nerdtree安装步骤:wget http://www.vim.org/scripts/download_script.php?src_id=17123 -O nerdtree.zip unzip ne...
2019-06-19 17:30:33
222
转载 Ubuntu 14.4 sudo apt-get update 出现错误
最初是sudo apt-get install python3-wheel 出现依赖关系,根据网上信息说需要更新sources.list。但是一直更新失败。参考https://www.cnblogs.com/zlslch/p/6860229.htmlUbuntu 14.4 sudo apt-get update 出现错误Reading package lists... Done...
2019-05-18 18:37:30
548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人