![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一文搞懂系列
文章平均质量分 95
主要分享工作中常用的一些知识点,深入浅出
谢艺华
主要深耕于 linux 后端开发,热衷于体系能力(包括不限于C、C++、linux、编译原理、数据结构和算法、网络、操作系统
)的沉淀,分享工作中重要的知识点和具有代表性的案例分析。
欢迎志同道合的朋友与我一起前进
展开
-
unix高级编程系列之文件I/O
文件编程是Linux开发者必须掌握的技能。本文介绍了Linux文件编程中常用的API及其注意事项,包括open、creat、close、lseek、read、write、dup和dup2等。还介绍了sync、fsync和fdatasync等接口,用于确保数据安全。此外,文章还解释了Linux内核如何标识打开的文件,以及文件表项、V节点和进程表项之间的关系。希望能给您带来帮助。若我的内容对您有所帮助,还请关注我的公众号。不定期分享干活,剖析案例,也可以一起讨论分享。原创 2024-07-06 14:43:07 · 764 阅读 · 0 评论 -
一文搞懂系列——可变参数函数实现原理及注意事项
可变参数函数是C语言中常见的特性,允许函数接受数量不定的参数。常见的实现方式是通过va_list系列函数,包括va_startva_argva_end。本文介绍了其实现原理,希望大家能够得到更进一步的理解。不正确使用可变参数,可能会导致程序崩溃(段错误)或其他安全问题。例如,如果调用函数时没有提供足够的参数,va_arg可能会访问非法的内存地址。明确固定参数和可变参数的个数和类型。使用编译器的警告选项(如-Wformat)来检测潜在的问题。在函数调用时提供正确的参数数量和类型。原创 2024-02-22 18:17:10 · 937 阅读 · 0 评论 -
一文搞懂系列——非局部跳转setjmp和longjmp使用及原理
本文向大家介绍了非局部跳转函数setjmp和longjmp的使用方式,以及实现原理。即使它的存在,有很多不好的影响。但是在特定场景下还是能够体现它的价值。比如异常处理,实现C语言的异常捕获和协程。但是还是希望大家谨慎使用,按需设计。若我的内容对您有所帮助,还请关注我的公众号。不定期分享干活,剖析案例,也可以一起讨论分享。踩完您工作中的所有坑并分享给您,让你的工作无bug,人生尽是坦途。原创 2024-01-25 16:04:02 · 1154 阅读 · 2 评论 -
一文搞懂系列——Linux C线程池技术
实际上,我觉得在诊断项目中,线程池技术是非必要的。因此它不会涉及到大量的请求,以及每一个请求处理,一般都会比较耗时。参考:https://www.cnblogs.com/zhaoosheLBJ/p/9337291.html。原创 2024-01-15 21:09:36 · 1152 阅读 · 2 评论 -
一文搞懂系列——替换动态库,为什么导致运行进程异常
至此,该问题终于解决了。内容较多,希望大家有所收获。在知道根因后,我们不妨再想想,如何在程序运行时,替换动态库,却不影响正在程序。提示:先删除,再拷贝。即。不妨试试哦,可以把原理在评论区写出。若我的内容对您有所帮助,还请关注我的公众号。不定期分享干活,剖析案例,也可以一起讨论分享。踩完您工作中的所有坑并分享给您,让你的工作无bug,人生尽是坦途。原创 2024-01-02 09:48:59 · 1356 阅读 · 4 评论 -
一文搞懂系列——DBC数据库信号解析规则及案例
DBC是vector公司定义的can网络通信文件格式。网上介绍的文章很多,有兴趣的朋友可以去搜索一下。本文的主要核心是解析DBC信号部分,对于相关信息进行简略描述。版本与新符号波特率定义网络节点的定义报文帧的定义信号的定义注解部分特征部分数值表部分格式为含义如下:。BU_为关键字,表示网络节点;表示网络节点名字,由用户自己定义。通过网络节点方便地进行CAN网络的设计、开发和测试。如下:格式为BO_,为关键字,表示报文;MessageId,报文ID,是以10进制数表示的。原创 2023-12-18 21:55:25 · 4048 阅读 · 5 评论 -
一文搞懂系列——字节对齐的前因后果及应用
通过同事偶然间遇到的一个问题,深入剖析,了解到字节对齐前因后果。也给我们警示结构体定义需要满足编译器的规则,否则可能会大量浪费内存空间。在跨平台开发过程中,我们也要考虑结构体成员long数据类型在不同平台的变化。当然也有可能会因为编译器的不同,其它基础数据的自身对齐值,也会发生变化。定义结构体成员变量时,考虑跨平台的情况。对外提供的头文件,可以通过强制设置自身对齐值。若我的内容对您有所帮助,还请关注我的公众号。不定期分享干活,剖析案例,也可以一起讨论分享。原创 2023-12-11 17:39:10 · 757 阅读 · 2 评论 -
一文搞懂系列——你真的了解如何生成动态库了吗?
本文从两个实际存在的场景,向大家介绍了动态库生成过程中的一些特定需求。简单介绍了和两个链接属性及使用方式。。有兴趣的朋友可以了解一下。若我的内容对您有所帮助,还请关注我的公众号。不定期分享干活,剖析案例,也可以一起讨论分享。踩完您工作中的所有坑并分享给您,让你的工作无bug,人生尽是坦途。原创 2023-12-07 16:50:28 · 1119 阅读 · 1 评论 -
一文搞懂系列——动态库的加载方式及应用场景
我们从输出结果,可以知道,动态链接器只加载/etc/ld.so.cache配置文件,并没有加载/etc/ld.so.conf配置文件。-Wl,-rpath是编译阶段修改可执行程序的rpath参数,但是往往我们在工程中是不太确认最终的集成路径的。我们只需要将动态库放到对应的路径下即可。我们在工作中经常会遇到动态库链接的问题,因为正常的方式并不能满足我们的场景。知道可执行程序依赖哪些动态库口,动态链接器就需要去找这些动态库,查找的方式主要有以下四种。是我们最最常用的方式,大部分情况下,我们使用该方式即可。原创 2023-12-04 14:16:19 · 1462 阅读 · 4 评论