Lang-c/c++
文章平均质量分 77
horst_hu
这个作者很懒,什么都没留下…
展开
-
gcc4.4下实现backtrace代码
最近在一块新的板子下作开发, 有些变量发生异常(就是我们不想到的值),可以加上backtrace,知道是哪个函数调用它,导致出现异常, 就像死机了,你可以gdb和core文件用bt 命令,查看死机在哪里(有一种 情况 不能看见, 就是发生信号异常不在本文范围 ), 本人感觉还有用, 关说不炼、假把式,下面是实现代码: 首先实现核心代码backtrace函数: ext原创 2012-07-14 15:16:18 · 3321 阅读 · 4 评论 -
服务器内存问题总结
最近服务器总是不定时的奔溃,从core文件的堆栈上看,是奔溃在lua的实现文件里面,都是分配内存或是释放内存时发生的。查看目录/var/log下的messages文件,可以发现有这样的日志 *** glibc detected *** free(): invalid next size (normal 或fast): 0x00000000d15bd970 *** 或double f转载 2014-06-05 11:43:26 · 1108 阅读 · 0 评论 -
C语言结构体里的成员数组和指针
单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。为了方便你把代码copy过去编译和调试,我把代码列在下面:123456转载 2014-04-17 10:53:32 · 862 阅读 · 0 评论 -
域名,ip相互转换(Linux,getaddrinfo, getnameinfo)
参考链接:http://en.wikipedia.org/wiki/Getaddrinfo代码: 01/* ip_to_hostname ip */02#include 03#include转载 2013-12-19 16:37:07 · 2322 阅读 · 0 评论 -
linux 下 C 编程和make的方法
转载地址:http://my.oschina.net/luckystar/blog/67074终于开始make了 make 是个命令,先谈一下,为什么要make? 首先的理由就是,你可以将前面很多gcc的命令行,汇总起来,并且一次确认,多个命令自动运行。我相信很多人说我在忽悠。这就是个“批处理”,就是加上复杂的变量替换,条件执行,也就是个脚本。没错,make首先就是转载 2013-11-26 15:29:15 · 1753 阅读 · 0 评论 -
那些年我记下的一些编程错误
转载:http://blog.csdn.net/huangblog/article/details/8796507编程不经历错误或警告,怎能见彩虹,没有人能随随便便成为高手。身为程序员的我们,如果哪一天没有了错误或警告的提示,一定会有一种不祥的预感,对吧,都懂的。编程N年来,碰到过的问题多得自己都记不清了,你也一样,如果可以选择,我愿时光倒流,真希望都能记下来,现在就可以写本《错误集》转载 2013-10-23 10:32:33 · 6051 阅读 · 0 评论 -
从一条内裤说起
转载:http://www.oschina.net/question/249672_75588开源内裤,是OSCHINA的主题物品,也算极品程序员必备之内裤。其区别一般内裤的地方就在于存在一句名言“hello world!"。 本篇的目标,就是我们如何用C语言作为工具,在屏幕上打印出hello world!(目前我们尚没有自动化设备,能在内裤上打印,抱歉)。 要想在屏幕转载 2013-09-17 17:28:07 · 1207 阅读 · 0 评论 -
linux下用C编写的基于smtp的带附件邮件发送程序
今天做了一个简单的stmp邮件发送的客户端demo,可以支持带附件发送,希望将实现分享一下, 目前测试环境是公司的内部邮箱, 有gmail邮箱测试没有成功, 可能gmail邮箱需要ssl加密,后续再进行完善吧, 这个demo实现的非常简单的阻塞的发送发送邮件, 在后续的工作中需要改成非阻塞的方式, 原理就是这样的。 你可以在网上stmp的原理,网上资料很多,在这里就不罗嗦了,本人水平有限,原创 2013-07-25 15:53:19 · 8521 阅读 · 5 评论 -
由socket的accept说开去
今天与同学争执一个话题:由于socket的accept函数在有客户端连接的时候产生了新的socket用于服务该客户端,那么,这个新的socket到底有没有占用一个新的端口? 讨论完后,才发现,自己虽然熟悉socket的编程套路,但是却并不是那么清楚socket的原理,今天就趁这个机会,把有关socket编程的几个疑问给搞清楚吧。 先给出一个典型的TCP/IP通信示意图。转载 2013-07-25 13:53:32 · 685 阅读 · 0 评论 -
比较透彻的epoll的讲解
本文转自首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从s转载 2013-04-07 18:56:34 · 663 阅读 · 0 评论 -
H3C面试归来-感受
昨天接到H3C HR的面试邀请,本来不想去的, 和自己的方向不是太一致,看了看面试通知, 就在我家旁边, 那就试试白。 9:00去面试, 去到了,一层站了好多人(还要领零时卡),HR把我们分开安排去做面试题,本人就讨厌做面试题的(无赖,在别人的地盘就听别人的), 有两道编程题, 大概用30分钟,写完了, 为了赶时间,没怎么看就交了, 过一会有个技术来了, 就是让简单介绍一下自己,看了看我的简历,过原创 2012-11-08 16:58:38 · 3344 阅读 · 3 评论 -
共享库之动态连接
静态链接浪费内存和磁盘空间、模块更新困难等问题,因此寻找一种更好的办法来组织程序模块。 静态链接对程序的更新、部署和发布也会带来很多麻烦。 动态链接: 就是不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。 动态链接的方式使得开发过程中各个模块更加独立、耦合度更小,便于不同的开发者和开发组织之间进行独立的开发和测试。动态链接还有一个特点就是程原创 2012-10-26 14:45:58 · 1568 阅读 · 0 评论 -
linux多线程编程,替代sleep的几种方式
我只想要进程的某个线程休眠一段时间的,可是用sleep()是将整个进程都休眠的,这个可能就达不到,我们想要的效果了。 目前我知道有三种方式:1 usleep 这个是轻量级的, 听说能可一实现线程休眠, 我个人并不喜欢这种方式,所以我没有验证它的可行信(个人不推荐)。2 select 这个可以,我也用过这种方式, 它是在轮询。3 pthread_cond_timedwa原创 2012-08-27 12:31:26 · 29835 阅读 · 11 评论 -
c语言字节对齐
文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据转载 2012-08-17 13:27:29 · 819 阅读 · 0 评论 -
浅析IBM i上C/C++应用程序编译调试方法
软件调试对于编程人员来说有着非常重要的意义,应用程序功能的开发和完善是在不断调试中完成的。本文围绕IBM i上C/C++语言的编译调试问题进行分析和介绍。主要介绍两方面的内容:一是system i上C/C++源程序编译方法,二是C/C++程序在system i上的调试方法。IBM i上编辑应用程序代码可以选择绿屏或者其他平台编辑后上传的方式,这里采用windows 端自选编辑器编辑示例程序te转载 2012-08-05 16:40:06 · 1622 阅读 · 0 评论 -
c 语言时间函数陷阱
在编写C语言的应用程序时,为了获取或者打印一些跟时间有关的信息,我们经常会使用到C语言自带的一些时间函数,诸如:time、localtime、ctime、mktime和asctime等。但你可能没有注意到这里面含有一些有趣的现象,先来看一个例子: 1 #include stdio.h> 2 #include time.h> 3 4 int main ()转载 2012-08-05 16:35:28 · 753 阅读 · 0 评论 -
c++ 拷贝构造函数优缺点
前一段时间去面试,被人问了一个这个问题, 突然不知道怎么回答了, 后来查了查,才知道原来是怎么样了, 现在总结一下吧。拷贝构造函数和赋值运算符用于创建对象的副本。在某些情况下由编译器隐式调用拷贝构造函数,例如按值传递对象的时候。优点:拷贝构造函数可以很容易地复制对象。 STL容器要求所有内容可拷贝和赋值。拷贝构造函数可以比copyfrom()式的解决方法更有效,因为它们将构造和复制原创 2014-11-12 18:59:40 · 3865 阅读 · 0 评论