
C语言
文章平均质量分 77
vc0051127833
这个作者很懒,什么都没留下…
展开
-
new和malloc 区别和联系
new和malloc 区别和联系集锦1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free 也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而m转载 2012-05-07 10:21:06 · 830 阅读 · 0 评论 -
空结构和空类
问题引入:经常看到有人说,在C++中如果定义空类/空结构,用sizeof对其取长度结果是1,疑问:对于这个结果个人比较困惑,无法确定是否正确,所以做了一系列测试来验证说法测试环境:gcc 3.4.4,vc++6.0,CVI8.0.0在msdn中对sizeof的使用中有如下一句话引用:"...The sizeof operator never yields 0, even f转载 2012-05-07 09:54:08 · 967 阅读 · 0 评论 -
网络字节序与主机字节序的转换
在对IP地址结构体SOCKADDR_IN赋值的时候,经常会用到下列的函数htonl,htons,inet_addr,与之相对应的函数是ntohl,ntohs,inet_ntoa。查看这些函数的解析,会发现这些函数其实是与主机字节序和网络字节序之间转换有关。就是什么网络字节序,什么是主机字节序呢?下面我写出他们之间的转换:用IP地址127.0.0.1为例: 第一步 127转载 2012-05-30 10:52:20 · 4387 阅读 · 0 评论 -
mmap内存映射
linux mmap 内存映射mmap() vs read()/write()/lseek()通过strace统计系统调用的时候,经常可以看到mmap()与mmap2()。系统调用mmap()可以将某文件映射至内存(进程空间),如此可以把对文件的操作转为对内存的操作,以此避免更多的lseek()与read()、write()操作,这点对于大文件或者频繁访问的文件而言尤其受益。但有一转载 2012-05-15 15:25:11 · 7416 阅读 · 1 评论 -
SOCKET错误
下面列出了几个在客户与服务进程连接中常见的几个 Socket 错误,并分析了原因。后续再逐渐补充吧。 ECONNABORTED 该错误被描述为“software caused connection abort”,即“软件引起的连接中止”。原因在于当服务和客户进程在完成用于 TCP 连接的“三次握手”后,客户 TCP 却发送了一个 RST (复位)分节,在服转载 2012-06-12 16:00:30 · 2924 阅读 · 0 评论 -
Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一转载 2012-06-13 11:23:23 · 1218 阅读 · 0 评论