- 博客(32)
- 资源 (292)
- 收藏
- 关注
原创 在c++Builder中使用boost正则表达式实现的查找double和int类型的字符串,并实现StringToInteger和StringToDouble函数
直接贴出来代码,以供参考:// -以下为头文件定义#include"StringToNumber.h"#include//正则表达式的头文件// #include//其实上面的代码会自动包含此头文件// #include //其实上面的代码会自动包含此头文件// ----------------------------------------------------------
2012-07-30 17:24:48 1064
原创 Linux下如何修改ip地址
在Linux的系统下如何才能修改IP信息 用ifconfig修改,重启后会失效。直接修改配置文件:配置文件目录,不同的linux系统可能会有所不同,下面列出用过的几个目录:(1)/etc/sysconfig/network-s/ifcfg-eth0(2)/etc/network/interfaces A、修改ip地址 即时生效: # ifconfig e
2012-07-30 16:09:46 899
原创 linux find 使用
假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf 结果:etc/httpd/conf/httpd.conf如果你想要查找 /conf 这个目录 那么用命令:find / -type d -name "conf"结果:/etc/logw
2012-07-30 11:24:03 483
转载 详细解析boost中bind的实现 .
写在前面的话在C++11之后,std::bind是C++标准库的一个组件了。一开始想弄个C++11的实现来研究下,发现里面用到了可变参数模板(代码变得非常神奇).http://llvm.org/svn/llvm-project/libcxx/trunk/include/functional还是弄个原始点的boost的实现来研究下。话说网上关于boost::bind的实现的文
2012-07-28 10:44:15 822
原创 一些开源项目网址
基础网址:http://code.ijinshan.com/ http://search.csdn.net/CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。http://snippets.org/简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。http://w
2012-07-28 10:42:14 781
转载 STL源码剖析---红黑树原理详解
一、红黑树概述 红黑树和我们以前学过的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。不过自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更高的统计性能。这一点在我们了解了红黑树的实现原理后,就会有更加深切的体会。 红黑树和AVL树的区别在于它使用颜色来标识结点的高度,它所追求的是局部平衡而不是AVL
2012-07-27 14:54:51 4827
转载 程序员们的时间管理法则
软件开发是非常令人兴奋的工作,经过多年的工作,你不仅可以得到相应的报酬(随着工作经验增长)还会有其他晋升的机会。大多数人只关心保持头浮出水面。但这并不是我们所要追求的目标,那仅仅是我们在学校或者孩童时代的梦想?为了赚更多的钱,大多数人还会找额外的工作并且不太关注编程以外的东西。没有时间休息、没有时间和家人朋友小聚、除了工作还是工作。因此导致压力越来越大,对生活的不满足感油然而生。其实我
2012-07-27 11:19:18 1258
原创 完全反截屏
把一些高手的语录总结一下: 控制所有截屏软件肯定是不可能的。但可以用相当小的代价来禁止尽可能多的截屏。分析截屏软件的行为,可得出截屏基本有两种方式。1. 通过剪贴板2. 直接截取屏幕中的某一部分保存成图像文件针对以上两种可做如下的防护:1. 监控剪贴板变化 (SetClipboardViewer) ,发现剪贴板发生变化后,看剪贴板中是否有图片,如果有,清空它。2
2012-07-26 17:11:50 10392 1
转载 天时、地利、人和:大话OpenStack
【导读】《孙膑兵法·月战》:“天时、地利、人和,三者不得,虽胜有殃。” 我们可以把“云计算”当做一场没有硝烟的战争,云计算平台可以算是一场局部战争,OpenStack就像这场局部战争中一颗闪亮的“新星”。天时:亚马逊已经成为云计算领域的“霸主”,没有一家IT巨头愿意受制于亚马逊,而且使用亚马逊网络服务的云计算企业,抱怨最多的就是“用户被绑架,无法轻易转移数据”,OpenStack应运而生,时机
2012-07-26 16:28:44 2277
转载 CUDA编程模型:内核与线程层次概述
【IT168 技术】本章引入了CUDA编程模型背后的主要概念,方式是概述它们是怎样使用C语言表示的。更多的关于CUDA C的描述在第三章。 相关文章: CUDA初探:从图形处理到通用并行计算 CUDA初探:通用并行计算架构和编程模型 本章使用的向量相加例子的完整代码和下一个例子可在SDK中的vectorAdd代码样本中找到。
2012-07-26 16:24:11 844
转载 CUDA编程模型:存储器层次和异构编程
【IT168 技术】存储器层次 在执行期间,CUDA线程可能访问来自多个存储器空间的数据,如图2-2所示。每个线程有私有的本地存储器。每个块有对块内所有线程可见的共享存储器,共享存储器的生命期和块相同。所有的线程可访问同一全局存储器。 相关阅读: CUDA编程模型:内核与线程层次概述 CUDA初探:从图形处理到通用并行计算 CUDA初探
2012-07-26 15:36:24 1303
原创 Boost asio学习笔记—— 网络编程
boost库中的网络编程的例子比较复杂,不太好理解,所以,从网上找了一个简单点的例子。网址如下:http://blog.chinaunix.net/u3/93184/showart_1846119.html.经过修改,可以运行。服务器代码:Servier.cpp#includeboost/asio.hpp>#include boost/bind.hpp>#i
2012-07-19 13:40:11 727
转载 linux的线程同步机制
互斥锁尽管在Posix Thread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在Posix Thread中定义了另外一套专门用于线程同步的mutex函数。1. 创建和销毁有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread
2012-07-19 13:25:12 588
转载 boost条件变量(condition_variable)wait操作传
本文也标题党了一回。因为在boost开发者眼里,这肯定不是bug,甚至算不上flaw,而是character,详见#2219 This works as designed 云云。如果搞懂原理后正确使用也一切OK,不过我觉得作为一个高质量的库,不应该对开发者提出这么高的要求,另外这个问题让我半夜调试鸡飞狗跳,难免带些情绪,所以姑且称其为bug吧。 先说几句题外话:条件变量是并发开发的一大利
2012-07-19 13:19:49 3937
原创 Boost Thread学习
下面先对condition_impl进行简要分析。condition_impl在其构造函数中会创建两个Semaphore(信号量):m_gate、m_queue,及一个Mutex(互斥体,跟boost::mutex类似,但boost::mutex是基于CriticalSection临界区>的):m_mutex,其中:m_queue相当于当前所有等待线程的等待队列,构造函数中调用Crea
2012-07-19 10:58:30 607
原创 Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量
摘要: 多线程同步技术是计算机软件开发的重要技术,本文对多线程的各种同步技术的原理和实现进行了初步探讨。关键词: VC++6.0; 线程同步;临界区;事件;互斥;信号量;正文 使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应
2012-07-19 10:49:45 1993
转载 Boost.Interprocess使用手册翻译之六:同步机制(Synchronization mechanisms) .
2012-02-07 18:13 444人阅读 评论(0)收藏 举报六. 同步机制同步机制概述互斥量条件变量信号量升级互斥量通过移动语义转移锁文件锁消息队列 同步机制概述具名和匿名同步机制同步机制类型如前所述,如果对内存的访问不能有效的同步,则通
2012-07-19 10:23:49 1220
转载 学着站在巨人的肩膀上
boost线程库C++标准库没有涉及线程,在C++中,虽然不可能写出标准兼容的多线程程序,程序员可以使用特定操作系统提供的线程库来写出多线程程序来。可是,这至少导致两个突出的问题:操作系统普遍提供的是C库,在C++中使用要更小心,每个操作系统都有自己的一套支持多线程的库;另外,代码不标准,不可移植。Boost.Threads 可以解决这些问题。创建线程boost::thread 类
2012-07-18 16:52:24 613
转载 Libthreadpool
概述现在进程/线程的创建时间已经大大缩短,但是如果需要频繁的创建进程/线程,并且每个子任务处理时间又非常简短,则进程/线程不断的创建与销毁给系统带来的额外负担也是很大。预分配并发进程或线程技术可用于避免创建与销毁进程/线程所付出的代价,进程/线程一旦创建,就会持续运行。拿预分配线程来说,设计人员编写主程序时便预先创建一定数目的线程(线程池),当请求到达时,就从线程池中申请一个线程来处理
2012-07-18 15:55:58 598
转载 整合 Google 开源 C++ 代码
Google 开源了很多优秀的 C++ 程序库,本文介绍如何将其中几个整合到一起。本文涉及的 Google 库有:gflags - 命令行参数解析。可以完全用命令行来配置应用程序,省去配置文件。 gtest - C++ 单元测试框架 gmock - C++ 单元测试中用到的 mock glog - 日志库 protobuf - 高效的网络协议格式 还有第三方的 libunwind
2012-07-18 15:41:46 741
转载 C++开源库,欢迎补充
C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)
2012-07-18 15:40:04 895
转载 win32线程池代码(WinApi/C++) .
win32线程池代码(WinApi/C++)健壮, 高效,易用,易于扩, 可用于任何C++编译器 //说明, 这段代码我用了很久, 我删除了自动调整规模的代码(因为他还不成熟)/******************************************************************* Thread Pool For Win32 * VC++ 6,
2012-07-18 10:58:04 433
转载 转载一份C++线程池的代码,非常实用 .
#ifndef _ThreadPool_H_#define _ThreadPool_H_#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include using namespace std;class ThreadJob //工作基类{public: //供线程池调
2012-07-18 10:56:46 703
转载 [C++][Thread] 转:线程池原理及创建(C++实现)
本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。为什么需要线程池 目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务
2012-07-18 10:54:25 1292
原创 ps -aux出来的stat结果Ss,Sl,SN~~
ps 的参数说明ps 提供了很多的选项参数,常用的有以下几个:l 长格式输出;u 按用户名和启动时间的顺序来显示进程;j 用任务格式来显示进程;f 用树形格式来显示进程;a 显示所有用户的所有进程(包括其它用户);x 显示无控制终端的进程;r 显示运行中的进程;ww 避免详细参数被截断;我们常用的选项是组合是 aux 或 lax,还有参数 f 的
2012-07-12 11:12:39 41315
转载 boost::thread简要分析(2):线程同步
除了thread,boost::thread另一个重要组成部分是mutex,以及工作在mutex上的boost::mutex::scoped_lock、condition和barrier,这些都是为实现线程同步提供的。mutexboost提供的mutex有6种:boost::mutexboost::try_mutexboost::timed_mutexboost::recu
2012-07-10 14:54:11 3318
原创 Win32 应用程序移植为 64 位程序
将 Win32 应用程序移植为 64 位需要注意一些地方结构体内存对齐的问题对结构体内存布局有依赖的程序,可能在 32 位向 64 位移植时出现问题,例如:123456structs { inta; constchar* b; intc; };
2012-07-06 09:41:52 877
原创 code iconv
/* Copyright (C) 2000 Free Software Foundation, Inc. This file is part of the GNU ICONV Library. The GNU ICONV Library is free software; you can redistribute it and/or modify it under the terms
2012-07-05 15:23:59 677
原创 一则C++Unicode集与多字节转换函数使用。
这函数,使用的是标准C函数。需要头文件cstdlib和clocale。针对中文的unicode写的函数。 ///将中文Unicode转换为Ansi多字节字符串 /** @param [out] paramDest 保存转换后的字符串 @param [in] paramSource 原始的Unicode字符串
2012-07-05 13:31:15 1776
原创 Linux头文件作用&信号signal处理函数
1、 一些头文件的作用::ANSI C。提供断言,assert(表达式):GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含:GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(),readdir(),readdir64()等:ANSI C。字符测试函数。isdigit(
2012-07-04 14:51:03 5023
原创 有关defunct进程(僵尸进程)的处理原则
僵尸进程:就是已经结束了的进程,但是没有从进程表中删除。太多了会导致进程表里面条目满了,进而导致系统崩溃,倒是不占用其他系统资源。僵尸进程的查看:ps -ef出现:root 13028 12956 0 10:51 pts/2 00:00:00 [ls] 最后有defunct的标记,就表明是僵尸进程。产生的原因:每个Linux进程在进程表里都有一个进
2012-07-04 12:53:40 1818
原创 Linux僵尸进程产生及如何避免
僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程.(zombie)进程,僵尸进程消耗很小的计算机资源,但是Linux系统对运行的进程数量有限制,如果产生过多的僵尸进程占用了可用的进程号,将会导致新的进程无法生成。这就是僵尸进程对系统的最大危害。在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信
2012-07-04 12:49:16 662
vc(2015sdk)_redist.x64
2018-11-27
python3.6.7-and-win7kb
2018-11-26
开源的FreeNOS
2016-12-09
IPMIView_2.9.25
2016-08-19
windows多线程编程技术与实例
2016-07-18
C++调用MATLAB[vs2010]
2016-05-18
PVS-Studio 6.00官方版(注册版)
2016-05-05
openCL编程指导源代码
2016-04-18
学习 FPGA 书籍分享
2016-04-12
Cocos2dx 源码与实例
2016-03-17
zlib 封装简单接口使用
2015-12-23
CrashRpt 源码
2015-10-12
基于FFmpeg的AVFilter例子
2014-06-09
libevent源码和一个小例子
2014-06-04
OpenCL CUDA 例子
2014-04-18
Google_Android开发入门与实践
2014-02-26
pstools远程控制工具
2014-01-24
一个c++buffer的设计和实现
2013-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人