C/C++
文章平均质量分 76
Bluestar
这个作者很懒,什么都没留下…
展开
-
C/C++笔试、面试题目大汇总[转]
C/C++笔试、面试题目大汇总 1.求下面函数的返回值(微软)int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是转载 2007-03-26 11:05:00 · 642 阅读 · 0 评论 -
linux常用c函数 文件权限控制篇
access(判断是否具有存取文件的权限)alphasort(依字母顺序排序目录结构)chdir(改变当前的工作(目录)chmod(改变文件的权限)chown(改变文件的所有者)chroot(改变根目录)closedir(关闭目录)fchdir(改变当前的工作目录)fchmod(改变文件的权限)fchown(改变文件的所有者)fstat(由文件描述词取得转载 2011-06-03 09:10:00 · 1108 阅读 · 0 评论 -
Linux/Unix 编程中 POSIX 函数的线程安全问题
Linux/Unix 编程中 POSIX 函数的线程安全问题 王 锐, 软件工程师, IBM余 京, 软件工程师, 国际商业机器有限公司 简介: 多线程技术在 Linux/UNIX 平台的应用越来越广泛。多线程在给我们带来便利的同时,也给我们带来一定的安全隐患 -- 线程安全问题。在 POSIX 标准函数中,有很多函数并没有相应的线程安全版本。本转载 2011-06-07 10:35:00 · 823 阅读 · 0 评论 -
使用 Socket 通信实现 FTP 客户端程序
使用 Socket 通信实现 FTP 客户端程序 高 乐怡, 软件工程师, IBM顾 锋磊, 软件工程师, IBM 简介: FTP 客户端如 FlashFXP,File Zilla 被广泛应用,原理上都是用底层的 Socket 来实现。FTP 客户端与服务器端进行数据交换必须建立两个套接字,一个作为命令通道,一个作为数据通道。前者用于客户端向服务器发送命令,转载 2011-06-07 10:57:00 · 841 阅读 · 0 评论 -
如何实现在一个 Socket 应用程序中同时支持 IPv4 和 IPv6
如何实现在一个 Socket 应用程序中同时支持 IPv4 和 IPv6如何巧妙地设计代码结构陈 鲁, 软件工程师, IBM孙 妍, 软件工程师, IBM 简介: 当今的网络主流是 IPv4 网络,但随着 IP 地址的日益短缺,IPv6 网络开始渐渐盛行,因此传统的网络编程也需要做一些改进来适应 IPv6 和 IPv4 共存的网络环境。 本文介绍了一种设转载 2011-06-07 11:21:00 · 14042 阅读 · 0 评论 -
C/C++中的日期和时间
本文将主要介绍在C/C++中时间和日期的使用方法.“时间”和“日期”的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。Calendar Time:日历原创 2011-06-13 17:49:00 · 847 阅读 · 0 评论 -
XML文件的解析--libxml库函数解释
libxml(一) 摘要 Libxml是一个有免费许可的用于处理XML、可以轻松跨越多个平台的C语言库。这个指南提供它的基本函数的例子。绪论 Libxml是一个实现读、创建及操纵XML数据功能的C语言库。这个指南提供例子代码并给出它基本功能的解释。在这个项目的主页上有Libxml及更多关于它可用的资料。包含有完整的API文原创 2011-06-14 10:47:00 · 462 阅读 · 0 评论 -
GZIP, ZLIB, DEFLATE, 文件格式
GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感原创 2011-06-21 16:56:00 · 3274 阅读 · 0 评论 -
如何转换为 Win32 FILETIME 或 SYSTEMTIME 的 UNIX time_t
在 UNIX 平台下名为 time_t,表示 1970 年 1 月 1,UTC (协调通用时间) 午夜以来经过的秒数是 ANSI C 运行库算术类型的窗体中维护文件的时间。 在 Win32 平台下主要中表示的数自 1601 年 1 月 1,UTC 以来的 100 个十亿分之一秒间隔 (坐标通用时间) 一个 64 位 FILETIME 结构的形式维护文件的时间。 本文说明如何将 UNIX 时间转换原创 2011-06-23 11:24:00 · 2262 阅读 · 0 评论 -
FILETIME, SYSTEMTIME 与 time_t 相互转换
ILETIME, SYSTEMTIME 与 time_t 相互转换 #####SYSTEMTIME 与 FILETIME相互转换##### 可以使用系统函数FileTimeToSystemTime(&ftcreate,&stcreate); 参数:(lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) 说明 根据一个FILETIME结构的转载 2011-06-23 11:28:00 · 1093 阅读 · 0 评论 -
htons(), ntohl(), ntohs(),htons() 函数
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数: htonl()--"Host to Network Long"原创 2011-07-21 10:37:24 · 543 阅读 · 0 评论 -
GBK UTF8 编码转换
在编程过程中,经常遇到GBK、UTF8、Unicode等编码格式的字符串转换,现总结如下。Windows平台下通过MultiByteToWideChar和WideCharToMultiByte两个函数来实现;Linux平台下通过iconv函数簇来实现。原创 2011-07-25 10:55:28 · 813 阅读 · 0 评论 -
C操作文件属性
linux下通过stat获取文件属性;windows下通过WIN32_FIND_DATA和FILE_INFO结构来获取文件属性。原创 2011-07-27 15:33:32 · 690 阅读 · 0 评论 -
基于C/C++/BCB的文件操作
基于C的文件操作在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct {int level;原创 2011-07-27 13:24:35 · 755 阅读 · 0 评论 -
zlib用法简单说明
本文的目的是: 简单说明如何把zlib加入到MFC程序中,提供内存压缩功能.1. 如何获得zlibzlib的主页是:http://www.zlib.net/2. 用VC++6.0打开把下载的源代码解压打开,VC6.0的工程已经建好了,在/projects/visualc6. 双击zlib.dsw, 可以在VC++6.0中看到里面有3个工程: zlib 是库文件(编译设置选中 w转载 2011-06-03 15:04:00 · 914 阅读 · 0 评论 -
文件映射问题
内存映射文件并不是简单的文件I/O操作,实际用到了Windows的核心编程技术--内存管理。所以,如果想对内存映射文件有更深刻的认识,必须对Windows操作系统的内存管理机制有清楚的认识,内存管理的相关知识非常复杂,超出了本文的讨论范畴,在此就不再赘述,感兴趣的读者可以参阅其他相关书籍。下面给出使用内存映射文件的一般方法: 首先要通过CreateFile()函数来创建或打开一原创 2007-08-03 15:27:00 · 1096 阅读 · 0 评论 -
C++内存管理——C++内存管理详解
踏入C++中的雷区——C++内存管理详解 作者:出处:计算机教学网责任编辑: 方舟 [ 2006-04-25 09:22 ]程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。 伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bil转载 2007-03-30 18:43:00 · 824 阅读 · 0 评论 -
C++内存管理——明晰C++内存分配的五种方法的区别
明晰C++内存分配的五种方法的区别 作者:出处:bbs责任编辑: 方舟 [ 2006-04-24 16:54 ]在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变转载 2007-03-30 18:47:00 · 984 阅读 · 0 评论 -
C++内存管理——控制C++的内存分配
控制C++的内存分配 作者:出处:论坛责任编辑: 方舟 [ 2004-01-25 09:00 ]在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控 在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C++对内存的管理非常的容易而且安全。具体地转载 2007-03-30 18:48:00 · 714 阅读 · 0 评论 -
C++内存回收——浅议C++ 中的垃圾回收方法
浅议C++ 中的垃圾回收方法 作者:出处:BLOG责任编辑: 方舟 [ 2006-04-25 16:58 ]许多 C 或者 C++ 程序员对垃圾回收嗤之以鼻,认为垃圾回收肯定比自己来管理动态内存要低效 许多 C 或者 C++ 程序员对垃圾回收嗤之以鼻,认为垃圾回收肯定比自己来管理动态内存要低效,而且在回收的时候一定会让程序停顿在那里,而如果自己控制内存管理的话,分配和释放时间都转载 2007-03-30 18:53:00 · 2366 阅读 · 0 评论 -
C++内存回收——驯服C++中的野指针
内存陷阱 驯服C++中的野指针 作者:justrun2005出处:BLOG责任编辑: 方舟 [ 2006-04-03 08:22 ]在c中,野指针也许性子野,但是控制起来也是有章可循。然而事情在c++中出现了变化。 什么是野指针? 一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期不同)母亲让在厨房的小孩带一块蛋糕(指针指向的对象)给在卧转载 2007-03-30 19:04:00 · 972 阅读 · 0 评论 -
C++内存回收——C++内存对象大会战
C++内存对象大会战 作者:peter_jiang出处:csdnblog责任编辑: 方舟 [ 2005-07-07 08:37 ]如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。 如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率转载 2007-03-30 19:07:00 · 901 阅读 · 0 评论 -
C++字符串完全指引之一 —— Win32 字符编码
原著:Michael Dunn翻译:Chengjie Sun原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展翻译 2007-03-29 12:34:00 · 590 阅读 · 0 评论 -
C++内存泄漏——C++中动态内存分配引发问题的解决方案(1)
C++中动态内存分配引发问题的解决方案 作者:邹浩浩出处:天极网责任编辑: 方舟 [ 2004-10-21 10:44 ]假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长 假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长,我们可以把数组大小设为20转载 2007-03-30 13:50:00 · 1024 阅读 · 0 评论 -
C++内存泄漏——如何对付内存泄漏
Bjarne:如何对付内存泄漏? 作者:MOLLY编译出处:天极网责任编辑: 方舟[ 2005-10-12 10:10 ] 写出那些不会导致任何内存泄漏的代码。很明显,当你的代码中到处充满了new 操作、delete操作和指针运算的话,你将会在某个地方搞晕了头,导致内存泄漏,指针引用错误,以及诸如此类的问题。 写出那些不会导致任何内存泄漏的代码。很明显,当你的代码中到转载 2007-03-30 18:31:00 · 693 阅读 · 0 评论 -
C++内存泄漏——菜鸟也能搞定C++内存泄漏
菜鸟也能搞定C++内存泄漏 作者:Akumas出处:BLOG责任编辑: 方舟 [ 2006-03-30 09:13 ]C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员有了更广的发挥空间,也产生了代代相传的内存泄漏问题。 背景 C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员有了更广的发挥空间,也产生了代代相转载 2007-03-30 18:38:00 · 943 阅读 · 0 评论 -
C++内存管理——浅谈C++中的内存管理
浅谈C++中的内存管理 作者:曹翼飞出处:放飞技术网责任编辑: 方舟 [ 2003-08-04 14:43 ]有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的...... 摘要: 大家都知道变量的生存周期这个概念,可是有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的。文章举了四个不同的例子,来说明这其中的原因。 前言: 前一段转载 2007-03-30 18:50:00 · 755 阅读 · 0 评论 -
C++内存泄漏——C++中动态内存分配引发问题的解决方案(2)
(续) C++内存泄漏——C++中动态内存分配引发问题的解决方案(1) 大家可以看到,以上程序十分正确,而且也是十分有用的。可是,我们不能被表面现象所迷惑!下面,请大家用test_wrong.cpp文件替换test_right.cpp文件进行编译,看看结果。有的编译器可能就是根本不能进行编译! test_wrong.cpp:转载 2007-03-30 19:39:00 · 835 阅读 · 0 评论 -
链表初探
链表概述 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再原创 2007-04-07 22:47:00 · 5763 阅读 · 3 评论 -
使用DEF文件来生成DLL与Lib
在程序使用Dll有两个加载方式,一种是动态方式,就是LoadLibrary载入Dll,然后用GetProcAddress来加载需要使用的Dll函数。另一种就是静态连接方式,将dll生成的lib,加入到工程中,然后使用时就像使用Win API一样使用。今天我们不讨论动态载入的方式,原创 2011-07-20 20:52:28 · 1053 阅读 · 0 评论