![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式Linux
文章平均质量分 53
MCNS_37
这个作者很懒,什么都没留下…
展开
-
C 多线程捕获段错误
C 多线程捕获段错误原创 2021-07-28 16:32:29 · 297 阅读 · 0 评论 -
#pragma pack() 易忽略的问题
#pragma pack() 易忽略的问题 C/C++中,class、struct、union默认的大小对齐方式为按照成员变量所占空间最大的大小进行对齐,如:typedef struct test{ char a; int b; double c;}test_t; 则test结构体内所有成员变量按照double类型进行字节对齐,此时sizeof(test_t)等于8*3。在网络通信中,为了让数据包更紧凑些,我们往往希望能够通过#pragma pack预编译命令改变默认对原创 2021-06-28 11:12:41 · 577 阅读 · 0 评论 -
段错误(核心已转储)——那些易被忽略的细节
段错误(核心已转储)——那些易被忽略的细节 段错误,就是一旦一个程序发生了越界访问,cpu 就会产生相应的保护,于是 segmentation fault 就出现了,通过上面的解释,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的,还有可能是缺少文件或者文件损坏。更多关于段错误的介绍可参照C语言再学习 – 段错误(核心已转储)。 对于段错误,常伴随着“free():invaild pointer”或者"double free or corruption"等,目前我遇到原创 2021-05-11 23:34:27 · 1682 阅读 · 2 评论 -
Linux 内存管理
提到C语言,我们知道C语言和其他高级语言的最大的区别就是C语言是要操作内存的! 我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。 内存的使用时程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系...转载 2021-04-28 20:18:04 · 98 阅读 · 0 评论 -
Linux (.text+0xba):对“floor”未定义的引用
Linux (.text+0xba):对“floor”未定义的引用 近期在Ubuntu Linux中编写C 程序,需要用到<math.h>中的"floor"函数,但是编译成功后运行时却报了标题上的错误,经网上查阅得知:在linux环境下编译C源代码时,除了添加头文件 #include <math.h>外,还需要链接数学库,即在编译语句后面加一个 -lm,如:gcc -o test -lm test.c 在网上关于链接库的一些资料整理如下: C代码调用math.h中的函数原创 2021-04-27 00:28:01 · 1742 阅读 · 0 评论