随笔分类 -  【C语言】

摘要:转自:http://blog.chinaunix.net/uid-30254565-id-5637597.html 内核中container_of宏的详细分析 16年2月28日09:00:37 内核中有一个大名鼎鼎的宏 container_of();这个宏定义如下所示,为了表示一下敬意,我就把注释一 阅读全文
posted @ 2018-09-06 11:09 Sky&Zhang 阅读(332) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析 list.h头文件分析(一) 16年2月27日17:13:14 在学习数据结构时,有一个重要的知识点就是链表。对于链表的一些基本操作,它的最好学习资料就是 阅读全文
posted @ 2018-09-06 11:05 Sky&Zhang 阅读(1143) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.chinaunix.net/uid-30254565-id-5637598.html linux内核中链表代码分析 list.h头文件分析(二) 16年2月28日16:59:55 分析完container_of()宏以后,继续分析list.h文件: (1)list_en 阅读全文
posted @ 2018-09-06 11:04 Sky&Zhang 阅读(602) 评论(0) 推荐(0) 编辑
摘要:有一天我编译内核模块驱动的时候发现如下错误 Linux kernel版本:4.1.15 error: negative width in bit-field '<anonymous>' 代码如下: static struct device_attribute sysfs_keypad_list[] 阅读全文
posted @ 2018-08-24 15:49 Sky&Zhang 阅读(1127) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/hazir/p/static_assert_macro.html 本系列文章主要写我在阅读Linux内核过程中,关注的比较难以理解但又设计巧妙的代码片段(不关注OS的各个模块的设计思想,此部分我准备写在“深入理解Linux Kernel” 系列文章 阅读全文
posted @ 2018-08-24 14:29 Sky&Zhang 阅读(300) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/Commence/p/5785912.html 很多学过C的人对malloc都不是很了解,知道使用malloc要加头文件,知道malloc是分配一块连续的内存,知道和free函数是一起用的。但是但是: 一部分人还是将:malloc当作系统所提供的 阅读全文
posted @ 2018-08-13 21:26 Sky&Zhang 阅读(1529) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/david_xtd/article/details/7311204 名称 malloc,free,calloc,realloc--分配和释放动态内存 概要 #include <stdlib.h> void *malloc(size_tsize); v 阅读全文
posted @ 2018-08-13 18:14 Sky&Zhang 阅读(1009) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/hailongchang/article/details/1609720 阅读全文
posted @ 2018-08-12 23:00 Sky&Zhang 阅读(517) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.chinaunix.net/uid-30339363-id-5116170.html 原文地址: Linux下函数调用堆栈帧的详细解释 作者:cssjtuer 原文地址: Linux下函数调用堆栈帧的详细解释 作者:cssjtuer http://www.ibm.com 阅读全文
posted @ 2018-07-20 14:40 Sky&Zhang 阅读(2853) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/troublelost/p/5236391.html 首先结果是: public bool IsPowerOfTwo(int n) { if(n<1) return false;//2的次幂一定大于0 return ((n & (n -1)) = 阅读全文
posted @ 2018-07-05 16:23 Sky&Zhang 阅读(580) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/guochaoxxl/p/6970090.html 概述 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的、复杂的应用程序中,内存泄漏是常见的问题。当以前分配的一片内存不再需要使用或无法访问时,但 阅读全文
posted @ 2018-07-03 16:37 Sky&Zhang 阅读(541) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/ransn/p/5081198.html 转载地址 : http://blog.csdn.net/21aspnet/article/details/6729724 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数 阅读全文
posted @ 2018-07-02 20:49 Sky&Zhang 阅读(627) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/jiayy/p/3475544.html 偶然中发现,下面的两端代码表现不一样 void main(){ void* p1 = malloc(32); free(p1); free(p1); // 这里会报double free 错误,程序退出 } 阅读全文
posted @ 2018-06-29 11:27 Sky&Zhang 阅读(1573) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/hazir/p/linxu_core_dump.html 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 阅读全文
posted @ 2018-06-29 10:34 Sky&Zhang 阅读(278) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/killmice/article/details/38443343#comments 定位多线程内存越界问题实践总结 2013/2/4 杨志丰 yangzhifeng83@gmail.com 关键字 多线程,内存越界,valgrind,electri 阅读全文
posted @ 2018-06-29 10:20 Sky&Zhang 阅读(1367) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/starstarstone/article/details/7493144?utm_source=tuicool&utm_medium=referral visibility用于设置动态链接库中函数的可见性,将变量或函数设置为hidden,则该符号仅 阅读全文
posted @ 2018-06-29 09:34 Sky&Zhang 阅读(1451) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/chenglei/archive/2009/08/06/1540702.html 从main.c中的printf开始读这个函数。 首先看printf函数的定义: 1 static int printf(const char *fmt, ...) 2 阅读全文
posted @ 2018-05-28 14:22 Sky&Zhang 阅读(1044) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/embedded-tzp/p/4451354.html 欢迎转载,转载时需保留作者信息,谢谢。 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt 阅读全文
posted @ 2018-05-23 11:25 Sky&Zhang 阅读(882) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/yunsongice/article/details/5538020 GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__是用来设置函数属性(Function Attribute)、变量属性(Vari 阅读全文
posted @ 2018-05-22 14:35 Sky&Zhang 阅读(929) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/Anker/p/3746802.html 1、前言 为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用 阅读全文
posted @ 2018-05-15 16:25 Sky&Zhang 阅读(651) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示