C
文章平均质量分 70
_RTFSC
Linux 下 C/C++ 程序员一枚~~
展开
-
记录一个GCC 和GLIBC不兼容的问题no such instruction: vinsert ......
记录一个GCC 和GLIBC不兼容的问题no such instruction: vinsert ......bug现场图示在线搜索结论汇总实际解决方案bug现场图示在线搜索结论汇总GCC 版本过高,降级binutils 版本低gcc 参数 -march= ? 的问题实际解决方案我是在一个很老旧的linux 集群节点上使用gcc820版本进行编译的,根据搜索反馈,这应该是一个兼容性问题,为了省事,我切换到一个新的节点上编译就好了当然为了使得编译结果能够在旧节点上运行,需要在旧的节点上配原创 2020-08-15 13:07:54 · 1764 阅读 · 0 评论 -
popen 遇到ENOMEN 的失败的bug调研
问题描述公司原有的程序最近遇到一个有趣的问题, 系统有内存3T , 内存消耗2.5T , 这个时候日志显示打开gzip 格式文件失败。 程序是老派的C程序, 打开gzip文件的方式是这样的:fd = popen("gzip -dc xxx.gz","r");我在后面添加了打印errno , 发现居然是ENOMEM (12) 这个错误! 问题调研查询关键字 popen ...原创 2018-04-03 19:59:25 · 1695 阅读 · 2 评论 -
一个薛定谔的bug
最近在维护公司原有项目的时候,遇到了一个无限循环的bug 。 初次遇到的时候,是刚刚接手这个项目,甚至怀疑自己是不是参数没有配置正确。 后来切换了运行服务器,重新编译后却正常运行了,也就没有再去追究(。。。囧。。。)。 老大分配的维护任务完成后,进行了基本的测试验证。觉得没问题了又回到了最初的服务器进行实际运行测试。起初我运行的DEBUG版本。 成功运行一遍之后,使用RELEASE 版本运行,结原创 2017-11-12 19:58:28 · 1387 阅读 · 0 评论 -
一个自动类型转化导致的bug
问题#include #include #include int main(){ uint32_t now = time(0) ; float gap = 104 ; uint32_t should = now + 104 ; uint32_t but = now + gap ; assert(but == shuld); retu原创 2016-08-30 17:54:26 · 707 阅读 · 0 评论 -
MD5 电子签名
MD5 算法假设我们有 b - bits 的数据,需要计算他的电子签名 , 对于任意的 b ( 甚至可以是 0 , 但是必须是 8 的倍数) 。追加对齐bit数据。让数据对齐成 模512 byte 剩余448 byte 的长度。 追加数据一定要进行,哪怕数据本来就是模512 byte 剩余448 byte, 也得追加512个byte来对对齐。 追加数据的方式是第一个bit是1 。 其余的bit全部原创 2016-03-22 09:27:54 · 815 阅读 · 0 评论 -
C 运算符优先级
一个很漂亮个博客 ~ 赞 。http://www.swansontec.com/sopc.html 如果写代码的时候不确定优先级 请用括号。 如果写代码的时候不确定优先级 请用括号。 如果写代码的时候不确定优先级 请用括号。原创 2015-12-26 16:50:26 · 372 阅读 · 0 评论 -
Base64 编码学习
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,参见规范 RFC2045~RFC2049。原创 2015-12-26 14:46:30 · 393 阅读 · 0 评论 -
Linux中的线程局部存储
转载出处:http://blog.csdn.net/cywosp/article/details/26469435 在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用原子操作来处理,这能对程序的性能会转载 2015-11-18 18:25:25 · 505 阅读 · 0 评论 -
Linux Epool 使用学习笔记
头文件#include <sys/epool.h>接口和结构体/* Creates an epoll instance. Returns an fd for the new instance. The "size" parameter is a hint specifying the number of file descriptors to be associated with th原创 2015-11-17 14:07:59 · 1412 阅读 · 0 评论 -
Linux 偏门接口速记
程序后台执行int daemon(int nochdir, int noclose);参数:nochdir为零时,当前目录变为根目录,否则不变;noclose为零时,标准输入、标准输出和错误输出重导向为/dev/null,也就是不输出任何信 息,否则照样输出。返回值:deamon()调用了fork(),如果fork成功,那么父进程就调用_exit(2)退出,所以看到的错误信息 全部是子进程产生原创 2015-11-16 13:19:04 · 469 阅读 · 0 评论 -
C / C++ 处理空结构体异同
闲来无事,尝试下面的代码 : (64位OpenSuse机器)#include <stdio.h>struct Empty{};struct EEmpty{ struct Empty e; struct Empty e1;};int main(){ printf("size of Empty struct is : %d\n", sizeof(struct Em原创 2015-06-25 13:36:52 · 1533 阅读 · 0 评论 -
对C可变参数宏的一种实现的个人剖析
头文件 :#原创 2014-05-14 11:16:30 · 1201 阅读 · 0 评论 -
Go 语言 与 C 语言 的比较学习
关键字 分类 C Go 字符 char 无 字符串 无 string 浮点数 double , float float32 , float64 , complex64 , complex128 整数 int long short uint8 , uint16 , uint32 , uint64 , int8 , int16 , int32 ,原创 2015-04-11 14:06:17 · 3298 阅读 · 0 评论 -
float double 类型数据 精度问题
简介 https://msdn.microsoft.com/zh-cn/library/hd7199ke.aspx浮点数使用 IEEE(电气和电子工程师协会)格式。 浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。 尾数表示一个介于 1.0 和 2.0 之间的数。 由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。原创 2015-06-10 13:33:21 · 5380 阅读 · 0 评论