- 博客(315)
- 资源 (3)
- 收藏
- 关注
转载 Linux内存管理之mmap详解
Linux内存管理之mmap详解一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作
2014-11-25 10:14:21 1862
转载 STL中vector的内存分配与正确释放
C++ STL中的vector的内存分配与释放 1.vector的内存增长vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此
2014-11-03 16:07:05 15695
原创 Windows下网络负荷率、Cpu占用率的实时监视
最近在写一个网络和Cpu负荷率的实时监控程序,上网查了很多资料,实现方法也比较多,可以用GetIfTable/GetIfTable2、Performance Counter等,最后比较了下,选择了Performance Counter。MSDN上有详细介绍其API。以下是我参考的一个写法:(http://en.literateprograms.org/CPU_usage_using_perfo
2014-10-31 16:07:26 16467
转载 VC 中字符串相关的宏 _T、TEXT,_TEXT、L 的区别与作用
一、 在字符串前加一个L作用: 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。 strlen("asd") = 3; strlen(L"asd") = 6; 二、 _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode
2014-10-30 14:40:11 842
转载 理解Linux系统负荷
理解Linux系统负荷作者: 阮一峰一、查看系统负荷如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了。在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。(另外,它们在苹果公司的Mac电脑上也适用。)你在终端窗口键入uptime,系统会返回一行信息。这行信息的后半部分,显示"load avera
2014-10-27 10:56:35 618
转载 STL容器类vector,list,deque的比较
转载: http://ikaruga.name/Technology/ccplusplus/stlCollection.htmlSTL容器类vector,list,deque的比较C++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑。在少量数据操作的程序中随便哪一种
2014-09-23 16:33:15 830
转载 关系型数据库与Key-value型数据库redistribute和文档性数据库Mongodb模式设计对比
MongoDb相比于传统的SQL关系型数据库,最大的不同在于它们的模式设计(Schema Design)上的差别,正是由于这一层次的差别衍生出其它各方面的不同。 我们可以简单的认为关系型数据库由数据库、表(table)、记录(record)三个层次概念组成,而在构建一个关系型数据库的时候,工作重点和难点都在数据库表的划分与组织上。一般而言,为了平衡提高存取效率与减少数据冗余之间的矛盾,设
2014-09-16 17:26:38 1479
转载 Nginx配置文件详细说明
在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.#运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/nginx.pi
2014-09-11 16:50:39 764
转载 Mongodb从配置到应用
早就想写一篇Mongodb的文章了,苦于木有时间呀,今天抽空将我所学习到的Mongodb知识整合一下,分享出来,部分Mongodb知识来源于网络.此处不给出链接,如果有侵犯,请及时联系我...一,Mongodb简介Mongo(http://www.mongodb.org/)是一个高性能,开源(代震军大牛正在研究Mongodb的源码,大家可以去看看http://www.cnblogs.c
2014-09-11 16:48:38 730
转载 CreateEvent函数在多线程中使用及实例
CreateEvent函数详解参见博客文章:c++中CreateEvent函数解析(2)HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL bManualReset, BOOL bInitialState,LPCSTR lpName);bManualReset:TRUE,使用ResetE
2014-09-10 14:52:49 986
转载 大端模式与小端模式的详解分析
大端序与小端序何为大端序,小端序?简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了。注意字节序是硬件层面的东西,对于软件来说通常是透明的。再说白一点,字节序通常只和你使用的处理器架构有关,而和编程语言无关,比如常见的Intel x86系列就是小端序。Big-endian(大端序)
2014-08-29 16:20:39 11698 1
原创 在 Windows7、64x、VS2010环境下安装C++ driver/mongoDB并配置的具体实现
I realize this is way to explicit for most but I did not want to leave outany ingredients for this recipe. I put this together with the help of TadMarshall and Erik Milke without whom I would stil
2014-08-26 22:57:51 2497
转载 拷贝构造函数和赋值函数
在C++中复制控制是一个比较重要的话题,主要包括复制构造函数、重载赋值操作符、析构函数这三部分,这三个函数是一致的,如果类需要析构函数,则它也需要复制操作符 和 复制构造函数,这个规则被称为 C++的“三法则”。如果需要手动定义了其中了一个,那么另外的两个也需要定义,通常在存在指针或者前期相关操作的情况下,都需要手动的定义。 复制构造函数与重载赋值操作符实现的大题相同,如果没有
2014-08-21 10:25:37 2446
转载 WaitForMultipleObjects与MsgWaitForMultipleObjects用法
用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑使用内核模式。用户模式与内核模式线程同步机制比较: 用户模式内核模式优点线程同步机制速度快 支持多个进程之间的线程同步,防止
2014-08-11 11:04:15 2693
转载 __declspec(dllimport)的用途
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。
2014-08-07 15:55:33 1814
转载 详谈UI线程和Windows消息队列
在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。 首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。 其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种特殊的对象——窗体,同时,还一并负责创建窗体上的各种
2014-08-04 10:07:21 779
原创 QT中QDir::currentPath()和QAppllication::appllicationDirPath()用法区别
最近需要动态回去exe文件的
2014-07-24 16:58:04 19669
转载 QT中的调试技术
下面提供一些有用的提示来帮助你调试基于QT开发的应用程序。调试配置 安装配置qt时,要确保包含调试选项。在一些平台上,在调试模式下编译qt将导致应用程序比预想的要大。带/不带框架的调试 有关调试库和框架的东西创建在developer.apple.com。 Apple Technical Note TN2124 在编译Qt的时候,默认要编译框架。在结果中,可以找到发行版
2014-07-22 12:07:18 1443
转载 Explicit Constructors(显式构造函数)
Explicit Constructors(显式构造函数) 按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于
2014-07-18 11:06:49 742
转载 QT中什么时候delete
在C++中学习过程中,我们都知道:delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt作为C++的库,显然是不会违背C++的前述原则的。可是:在Qt中,我们很多时候都疯狂地用new,却很少用delete,缺少的 delete 去哪儿了?!注:本文暂不涉及智能指针(smart pointer)相关的东西,你可以考虑 Qt 智
2014-07-17 16:57:43 1345
转载 linux中ps命令解析
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行
2014-07-02 22:35:04 1347
转载 Linux下select, poll和epoll IO模型的详解
一).Epoll 介绍Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。其实在 Linux 下设计并发网络程序,向来不缺少方法,比如典型的 Apache 模型( Process Per Connection ,简称 PPC ), TPC ( T
2014-07-02 16:46:03 1240
转载 快速排序详细分析--单向扫描和双向扫描
快速排序详细分析by JOKER on 2009/08/27快速排序详细分析注:REF[n]为参考资料,列于文章结尾。看了编程珠玑Programming Perls第11章关于快速排序的讨论,发现自己长年用库函数,已经忘了快排怎么写。于是整理下思路和资料,把至今所了解的快排的方方面面记录与此。纲要算法描述时间复杂度分析具体实现细节划分选取枢纽
2014-07-01 16:00:13 4805 1
转载 Linux中export 命令及LD_LIBRARY_PATH 变量
Linux export 命令功能说明: 设置或显示环境变量。(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,麻烦,在代码中先执行export,这个相当于告诉程序,执行某某东西时,需要的文件或什么东东在这些目录里)语 法: export [-fnp][变量名称]=[变量设置值]补充说明: 在shell中执行程序时,sh
2014-06-29 22:40:03 21425
转载 启动nginx,报错:error while loading shared libraries: libpcre.so.1:
$./nginx./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory$If you are getting above error while starting nginx, you can fix by
2014-06-29 20:53:52 5811
转载 linux下Ctrl+s的含义
很多刚从windows转移到linux上来工作的同事,在用vim编辑程序时,常常会习惯性的按下Ctrl + s保存文件内容。殊不知,这一按不紧,整个终端再也不响应了。 事实上Ctrl + s在终端下是有特殊用途的,那就是暂停该终端,这个功能是否有什么实际用途,目前没有用到过,还不清楚。要退出这种状态,让终端继续运行,很简单,按下Ctrl + q就行了。 想当年,刚开始用linu
2014-06-27 14:55:13 40286 5
转载 Linux 守护进程的编程方法
Linux 守护进程的编程方法 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本
2014-06-26 16:06:33 634
转载 用C++进行跨平台和可移植开发的注意事项
概述 今天聊聊C++的可移植性问题。如果你平时使用C++进行开发,并且你对C++的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。 C++的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很多内容。鉴于本人能力、精力都有限,只能介绍每一个方面最容易碰到的问题,供大伙儿参考。
2014-06-26 14:46:52 3652
转载 Linux下编译安装PCRE库
最近在学习nginx,nginx rewrite依赖于PCRE库,所以需要在linux系统中编译安装PCRE库。具体步骤如下: 1.下载PCRE包首先去官网下载pcre的安装包如果通过FTP的方式,下载地址为:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/如果通过http的方式,下载地址为:htt
2014-06-24 22:31:41 4018
转载 操作系统基础知识
也许,只需这一篇文章,便能让你全面的认识操作系统!在阅读本文之前,推荐阅读“自己动手制作4位计算机”。目录:1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。5. 线程的实现方式. (用户线程与内核线程的区别)6. 用户态和核心态的区别。7.
2014-06-24 13:46:11 3747
转载 VirtualBox虚拟机网络设置,使其与宿主机通信
方法一:VirtualBox是一款SUN出品的非常优秀的虚拟机程序,版本也非常齐全,你可以在官网上找到适合各种操作系统平台的版本。这里我先给大家大致讲解下VBox的网络配置及应用。VirtualBox的提供了四种网络接入模式,它们分别是:1、NAT 网络地址转换模式(NAT,Network Address Translation)2、Bridged Adapter
2014-06-20 16:19:40 13631
转载 linux网络配置命令之ifconfig、ip和route
一、作为一个linux的疯狂热爱者,我们首先需要掌握的就是在linux系统下怎么配置IP、路由和主机名基本的linux网络配置,当然如果要我们接入互联网基本的IP地址配置还是不够的,访问网络的话我们需要配置我们的域名解析服务器DNS,下面作为菜鸟的我就把我们平常用到的基本网络配置命令来和大家介绍一下,写的不好的话,还请见谅~~~~~ 本篇主要介绍linux下网络查看、配置的基本命
2014-06-20 15:29:29 1932
转载 abstract class和interface的区别详解
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的
2014-06-19 10:47:44 1510
转载 怎么生成dll
一、为什么需要dll代码复用是提高软件开发效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架,如ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”。“白盒复用”的缺点比较多,总结起来有4点。暴露了源代码;容易与程序员的“普通
2014-06-18 17:16:55 1056
转载 C++中extern “C”含义深层探索及extern、static关键字浅析
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不
2014-06-17 17:05:19 1936
转载 VC++动态链接库编程之基础慨念
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该
2014-06-17 10:51:04 716
转载 C,C++宏中#与##详解
文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x) #x之后,下面二条语句就等价。 char *pChar = "hello";
2014-06-08 21:04:48 695
转载 windows下如何判断操作系统是64位还是32位
64位Wnidows 里面有个叫Wow64 的模拟器技术,可以使32位的程序在64位Windows 上运行。 当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是64位。 使用 Windows API函数 GetNativeSystemInfo 可以获得这个信息。代码示例: SYSTEM_INFO si;GetNativeSystemInfo
2014-06-06 10:25:01 2726
转载 详解隐藏windows系统托盘图标
曾经写过一篇Windows下的任务栏图标编程 ,其实那篇文章讲的是如何将我们自己的程序最小化到托盘并进行操作的编程方法。前两天看到论坛 里有人讨论如何隐藏托盘图标,记得从前为朋友写过一个隐藏大智慧软件的程序,采用的方法就是将窗口最小化并隐藏大智慧在托盘上的图标,但是因为涉及到键盘钩子,最后并没有这么做,而是用添加一个虚拟桌面 的方法达到了效果。 看到这篇帖子 ,依稀想起我曾经做过的一
2014-06-05 22:13:50 6204
转载 CString与string之间的转换
CString->std::string 例子: CString strMfc=“test“; std::string strStl; strStl=strMfc.GetBuffer(0);unicode情形下: CStringW strw = _T("test"); CStringA stra(strw.GetBuffer(0)); st
2014-06-05 21:44:37 3463
基于AT89C2051单片机的电风扇
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人