自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 随笔(2015.08)

对于程序,需要考虑每个函数的返回错误,是否需要对错误处理。分布式事务强一致性的尽量避免。分布式事务有X/Open组织提出的分布式事务的规范XA,XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。分布式事务分为两阶段提交与一阶段提交,两阶段提交对一致性要求较强,(XA规范为两阶段提交)但对系统消耗较大。第

2015-08-28 16:51:39 449

原创 Google编码规范

PS:Google的编码规范,与其他编码规范相比比较特殊的地方就是对异常、智能指针的使用,异常要求不使用,智能指针也就是用个scope_ptr。异常C++中使用的本来就不多,不使用异常理由有捕获可能遗漏处理在一些情况下容易出错、破坏了结构化程序流等。与少于智能指针一样,容易导致错误。 其他的还有“不要用省略字母的缩写”,尽量用单词全拼,“并不完美的代码使用 TODO 注释。”,拷贝构造函数的默认禁

2015-08-26 09:48:46 1029

原创 完成端口(Q&A)

程序设计上,线程不怕多,怕切换的频繁,即使有多于cpu个数的线程,例如使用完成端口的时候,总会有个主线程,但这个主线程在配置完完成端口后就彻底的休息了(可以是join或信号量方式),cpu一直工作在完成端口的工作线程上,也不会频繁切换。为什么完成端口中工作线程的数目为cpu*2?设计的目的是为了让cpu满负荷工作。会不会造成额外的线程切换?会,但正常情况下不会,这里异常就是指处理线程进入阻塞状态(

2015-08-10 16:59:43 1388

原创 随笔(2015.2)

1.序列化可以实现远程过程调用,远程过程调用都是通过对象序列化?2.反射机制可以让系统开放.3.equals比较的是两个对象里面数值是否一样,==比较的是这两个包装类引用是否指向同一对象4.垃圾回收并不能强制执行,只能通过接口建议执行。why?,虽然垃圾回收机制会对系统造成一定的影响,但是对于目前硬件的处理能力而言,相对于没有垃圾回收5.垃圾回收是标记被引用的对象,用排除的方法来找

2015-08-10 13:59:07 528

原创 随笔(2015.7)

1. "We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nic

2015-08-10 13:57:21 552

转载 Linux下用php调用C接口(扩展)的资料

By Sara Golemon March 1, 2005Introduction What’s an Extension? Lifecycles Memory Allocation Setting Up a Build Environment Hello World Building Your Extension INI Settings Global Values

2015-08-09 16:54:28 972

转载 php调用c++程序例子

现需要php调用c++程序,参考了网上一篇文章,修改后在本机(fedora7)上测试通过,现整理如下。一、 编写test.cpp程序 转到你的apache服务器的站点目录下(即放置web文件的目录),我的是 /var/www/html目录,在该 目录下编写程序。    该简单程序的作用是通过命令行接受参数并显示出来,test.cpp代码如下:#include <iostream>using n

2015-08-09 16:50:14 3615

转载 Grep用法

QUOTE: 比方以 grep 来说, 在 Linux 上你可找到 grep, egrep, fgrep 这几个程序, 其差异大致如下: * grep: 传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下: -v: 逆反模示, 只输出"不含" RE 字符串之句子. -r: 递归模式, 可同时处理所有层级子目录里的文件. -q:

2015-08-09 16:43:37 4972

转载 测特定指令执行时所需消耗的时间及系统资源

名称: time      使用权限: 所有使用者      使用方式: time [options] COMMAND [arguments]      说明: time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配

2015-08-09 09:52:46 465

转载 消息队列

消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像”即时”的通信方式,它要求接受信号的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进

2015-08-09 09:51:40 966

转载 线程--具体函数介绍

线程的概念  1. 线程的优点  线程的实现时间远晚于进程.最早实现是solaris 上线程,多线程技术已经被许多操作系统所支持,包括Windows/NT,和Linux 使用多线程的理由之一是和进程相比,它是一种非常”节俭”的多任务操作方式。  启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种”昂贵”的多任务工作方式。而运行于一个进程中的多个线程

2015-08-09 09:48:38 491

转载 fcntl函数

系统也可以分为: 低速系统 和 其他。低速系统调用是可能会使进程永远阻塞的一类系统调用: 如果数据并不存在,则读文件可能会使调用者永远阻塞( 例如读管道,终端设备,网络设备 ) 如果数据不能被立即接受,则写这些文件同样也会使调用者永远阻塞。 在某些条件发生之前,打开文件会被阻塞( 例如打开一个终端设备可能需要等到与之连接的调制解调器应答 );又如,如果以只写的方式打开 FIFO,那么在没有其

2015-08-09 09:46:48 471

原创 五年前的随笔(三)

mysql导出表结构 使用mysqldump命令格式 mysqldump YourDatabaseName –user=YourUserName –password=YourPassword YourDatabaseName是你想处理的数据库名 YourUserName和YourPassword 对应你的授权口令如果只需要导出表的结构,那么可以使用mysqldump的 -d 选项导出整个库的

2015-08-09 09:44:46 383

原创 Bjarne Stroustrup 语录

一、致读者  1. 在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想:   ★.如果你能把“它”看成一个独立的概念,就把它做成一个类。   ★.如果你能把“它”看成一个独立的实体,就把它做成某个类的一个对象。   ★.如果两个类有共同的界面,将此界面做成一个抽象类。 

2015-08-08 16:55:06 468

转载 用C++实现网络编程---抓取网络数据包的实现方法

做过网管或协议分析的人一般都熟悉sniffer这个工具,它可以捕捉流经本地网卡的所有数据包。抓取网络数据包进行分析有很多用处,如分析网络是否有网络病毒等异常数据,通信协议的分析(数据链路层协议、IP、UDP、TCP、甚至各种应用层协议),敏感数据的捕捉等。下面我们就来看看在windows下如何实现数据包的捕获。下面先对网络嗅探器的原理做简单介绍。嗅探器设计原理  嗅探器作为

2015-08-08 16:54:08 6136

转载 Linux网卡数据包的接收

一、从网卡说起 这并非是一个网卡驱动分析的专门文档,只是对网卡处理数据包的流程进行一个重点的分析。这里以Intel的e100驱动为例进行分析。大多数网卡都是一个PCI设备,PCI设备都包含了一个标准的配置寄存器,寄存器中,包含了PCI设备的厂商ID、设备ID等等信息,驱动程序使用来描述这些寄存器的标识符。如下:[Copy to clipboard]CODE:

2015-08-08 16:53:01 4237

转载 curl

这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑1)二话不说,先从这里开始吧!curl http://www.yahoo.com回车之后,www.yahoo.com 的html就稀里哗啦地显示在屏幕上了~~~~~2)嗯,要想把读过来页面存下来,是不是要这样呢?curl http://www.yahoo.com > page.html

2015-08-08 16:51:32 504 1

原创 wget cookies 欺骗

1. 分析登录界面的html代码页面在 http://bbs.linuxeden.com/<input type="password" id="password" name="password" size="10" tabindex="2" nkeypress="if((event.keyCode ? event.keyCode : event.charCode) ==

2015-08-08 16:50:39 3327

转载 http协议学习和总结系列

蜜果私塾:http协议学习和总结系列——协议详解篇文:阿蜜果日期:2009-11-301. 基础概念篇1.1 介绍HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineeri

2015-08-08 16:49:42 801

原创 wget突破cookie限制--用wget批量下载中国联通沃商店app

第一次技术贴~~这两天一直纠结这个问题,今天来个了结,在网上参考的也挺乱,顺便理理思路~目标网站http://mstore.wo.com.cn/index.action?terindex=&page=320fantastic&loginSign=0&seeAllApp=1这个网站怎么看都不是像一个身处垄断行业的公司做出来的,竟然都不可以自由的选择页码,估计就是联通的实习生做了几个星

2015-08-08 16:48:08 4446

原创 五年前随笔(二)

函数指针,指针函数 函数指针是一个指向函数的指针,指针函数就说一个函数的返回值是一个指针。 函数指针的声明方法为:   函数类型 (标志符 指针变量名) (形参列表);  注1:“函数类型”说明函数的返回类型,“(标志符 指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:  int

2015-08-08 16:45:39 433

原创 linux 下 c++ 多线程的实现

看了不少文章,好多都很复杂,终于今天写了一个线程池,大概架构如下Task类,很简单就是完成具体的任务,c上是用struct存储的,c的具体的process(),用一个函数指针class Task{ public: Task(); ~Task(); int process(

2015-08-08 16:25:31 1041

转载 线程池 c 实现

什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。   下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。   p

2015-08-08 16:23:12 628

转载 虚拟内存

虚拟内存是个怎么强调也不过分的概念,它的存在极大地方便了程序设计任务,解放了程序员的手脚。下面看看虚拟内存的作用以及如何在存储管理机制的基础上实现它。什么是虚存?为什么需要它?  我们知道程序代码和数据必须驻留在内存中才能得以运行,然而系统内存数量很有限,往往不能容纳一个完整程序的所有代码和数据,更何况在多任务系统中,可能需要同时打开子处理程序,画图程序,浏览器等很多任务,想让内存

2015-08-08 16:17:32 450

原创 linux syetem()函数

Linux中的system函数详细分析相关函数fork,execve,waitpid,popen表头文件#include定义函数int system(const char * string);函数说明system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用

2015-08-08 16:16:12 506

转载 C++ STL遍历map的时候如何删除其中的element

我们通过map的erase(iterator it)方法删除元素的时候,如果此时erase处于遍历map的代码中,那么调用erase就需要小心一些。因为erase会导致输入参数iterator变的无效,从而影响后续的it++遍历map的逻辑。简单做法是,先将要删除的it保存下来,然后将用于遍历map的it指向下一个位置,然后删除掉保存下来的it。如下面代码所示:#include

2015-08-08 16:14:20 422

原创 字符串操作之分割字符串

分割字符串分两种,一类是以某个字符为key分割,一类是以某个串为key分割。以串分割的先找到key在原字符串中的位置,这个算法就多了,KMP然后用strcnp,strcat来操作,举个例子,也是引出本次讨论的问题,http://www.youku.com:80/ok删除:80三个字符。  char p[] = "http://www.youku.com:80

2015-08-08 16:12:04 660

原创 终止进程

exit和_exit函数都是用来终止进程的。当程序执行到exit或_exit时,系统无条件的停止剩下所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。但是,这两个函数是有区别的。 exit()函数与_exit()函数最大区别就在于exit()函数在调用do_exit之前要检查文件的打开情况,把文件缓冲区的内容写回文件。 由于Linux的标准函数库中,有

2015-08-08 16:10:26 383

转载 HTTP协议-无状态性

HTTP协议是无状态协议。   无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。   客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也

2015-08-08 16:05:18 395

转载 跟我一起写 Makefile

跟我一起写 Makefile陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在U

2015-08-08 16:04:01 489

转载 C++内存对象大会战

如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。笔者今天在这里并不是要讨论如何避免这些问题,而是想从另外一个角度来认识C++内存对象。   我

2015-08-08 16:01:56 411

原创 随笔五年前(一)

为了减少包得大小,当传得包大小不一定的时候,如一个可变的url的时候,这个url一定要定义在结构体的最后面struct mypacket{ hash[40]; char url[1024];};计算大小的时候传送数据大小为len = 40 + strlen[url] + 1; 如果结构体中的url定义在hash的前面,那么当len大小为60(eg)的时候,只发送了char u

2015-08-08 15:59:05 357

原创 select 用法

select 用法#include <sys/select.h>#include <sys/time.h>int select (int maxfdp1, fd_set *readset, fd_set *writeset,  fd_set *exceptset, const struct timeval * timeout);  Return >0:就绪描述字的正数目  -1:出错  0 :超时

2015-08-08 15:17:15 509

转载 使用Accept的完成端口

/////////////////////////////////////////////////// IOCPDemo.cpp文件 调试通过//#include "WSAInit.h"#include #include #include // 初始化Winsock库//CWSAInit theSock;#define BUFFER_SIZE 1024

2015-08-07 15:04:37 1239

转载 使用AcceptEx方法的完成端口

#include #include #include #include //微软扩展的类库 using namespace std; #define SEND 0 #define RECV 1 #define ACCEPT 2 #define DATA_LENGTH 1000 //单句柄数据定义 typedef struct _PER_HANDLE_DATA

2015-08-07 14:54:08 3880

用C++实现的Fisher算法

用C++实现的Fisher算法,我的毕设希望有用!

2010-05-09

用C++实现的LDA算法

用C++实现的LDA算法,我的毕设的一小部分,希望有帮助!

2010-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除