自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农小张

code monkey

  • 博客(44)
  • 资源 (14)
  • 收藏
  • 关注

原创 golang调用sql server proc

许久没写博客,近来真有点郁闷,首先自己水平有限,在成为大牛的路上努力挣扎中,狰狞地挣扎,其次是不满某些人的某些态度,我觉得态度是很重要的,好,吐槽完毕。 由于项目需要,需要用到sql server。首先golang连接sql server用的是官方推荐的包github.com/denisenkom/go-mssqldb,可以直接go get。golang调用sql server存储过程是比较蛋疼的

2016-09-06 00:54:21 5393

转载 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法

近来在写服务端的时候纠结服务端要不要主动调用close()关闭socket,后来深入了解tcp断开连接四次握手,心中有点答案了。 下面内容均为转载:昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下: http://blog.csdn.net/shootyou/article/details/6615051 里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的

2016-07-25 23:44:02 7463

转载 Golang 编译 条件编译

条件编译:标签编译:( build tag )// +build { GOOS }, { GOOS }, { !GOOS }// +build (linux AND 386) OR (darwin AND (NOT cgo))以 + 开始,例如 // +build 支持 GOOS 与 GOARCH 并可以具有多个值,用 , 分割, 例如: // +build linux, darwin, free

2016-05-12 00:06:12 6480

转载 excel表格导入到mysql

最近需要把excel表中的几百门课程导入数据库,然后数据做处理再插入到mongodb,当然,然后不是重点,重点是不知怎么导入,于是google了一下学习学习,还是蛮灵活的,可以导入到对应的字段。 下面内容转载自http://hunan.iteye.com/blog/752606,找了好些,觉得这博主写得比较全面,于是记录下面当备忘录。 下面内容均为转载: 基本语法: load data [

2016-03-14 23:13:26 940

转载 Golang之bytes.buffer学习笔记

bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{…}A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer r

2016-02-29 22:07:20 45011 1

转载 GoConvey断言err和bool的方法

最近在写单元测试的时候GoConvey.So()断言err是否nil和bool是否为true的时候不知道用哪个,于是找了这份官方文档,以后也可以参考。 GoConvey comes with a lot of standard assertions you can use with So(). General EqualitySo(thing1, ShouldEqual, thing2) So

2015-12-08 23:37:23 1733

原创 go json嵌套数组结构体用法

由于之前没有很好理解json,导致今天写单元测试的时候写json嵌套出现了大麻烦,记录一下。 golang生成json和解json数据都很简单,通过官方的“encoding/json”包,调用json.Marshal生成()和json.Unmarshal()解数据。 接下来重点讲嵌套的情况下如何生成json,如下:type AlipayRemoteReqStruct struct { O

2015-12-08 23:14:56 19444 4

转载 支付宝接口接入方法 步骤十分详细

原文在支付宝的论坛,最近在做支付宝支付接口接入,虽然不是用主流的java/php/c#,但原理还是相通。原文连接:http://club.alipay.com/read.php?tid=8681401大家想必都有这种困惑——拿到支付宝的接口代码后,尽管里面的程序有注释,接口代码包中也附有开发说明,但还是不知道该如何入手。这不难想象是什么原因,因为自己并不了解这个接口的工作原理是什么? 那么这篇文章

2015-12-03 23:23:04 71621 5

原创 内存池管理思想 另类内存池实现

一般来说,内存池都是采用预分配的方式,分为固定大小的和非固定大小块,固定大小的内存效率高,非固定大小灵活。同时,分为单线程和多线程版的,单线程不需要考虑并发问题。 一般内存池的实现思想:分配一块比较大多内存,把这块内存分成大小相等的块,即固定大小,第一块要保存必要的信息,比如nfirst(第一块可分配到块),nsize(共分配了多少),nfree(可分配块大小),pnext(若是内存池不够,分配一

2015-12-03 00:05:23 1212

原创 Go实现Web后端基础功能(附源码)

前言:好一段时间没写过博客了,最近比较坎坷,感叹一下。好了,进入主题,源码在最后的链接 功能: 1、实现注册相关,包括用户名(支持中文),密码,验证码。数据库为mysql 2、登录,用session记录登录状态 3、管理,查询用户列表等,json 4、单元测试 实现: 讲一下session的实现原理,session可以通过url和cookie方式实现,推荐cookie方式,是由服务端产

2015-11-23 00:18:48 5730

原创 网络编程经典好书推荐

共享一本经典好书,linux和windows全面涉及,由浅及深,从网络编程基础的套接字开始讲起,再到tcp和upd的区别,有边界和无边界,流的特点和数据包的特点,再到io模型,select到epoll,windows下的异步编程,重叠io,IOCP(io完成端口),epoll和IOCP都非常高效,而且都是操作系统相关。最后讲解http协议以及一个简单的web服务器的实现。 0分下载:http://

2015-09-17 23:01:15 4549 1

转载 探讨read的返回值的三种情况

今天探讨一个很看似简单的API “read”的返回值问题。read的返回值有哪几个值?每个值又是在什么情况下发生的?先问一下男人吧:man 2 read RETURN VALUE On success, the number of bytes read is returned (zero indicates end of file), and the file position i

2015-09-14 22:12:23 16207

转载 VC++6.0调试篇:定位临界区(critical section)导致的死锁

前言:今天人家问死锁怎么调试,除了记日志似乎还没掌握其他方法,于是度娘了一下,找到一篇好文章。在多线程程序的开发中,因为效率的关系,通常会选用CriticalSection作为同步的机制。初学者在设计开发多线程程序时经常会出现死锁的 情况,昨天就看到有个哥们在发帖问这个(明显是郁闷中阿)。这里通过一个例子说下不用Intel的Thread Checker,Thread Profiler,也不用强大的W

2015-09-08 00:14:32 668

转载 浅谈C++中的单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到

2015-09-07 00:48:07 403

转载 海量数据最小k个数

从大量(海量)数据中查找最小的k(k一般比较小)个数,这是笔试中常考的题目。 如果是从少量数据中查找最小的k个数据,并且允许修改允许修改原始数据,侧利用Partition()函数,在O(N)的时间复杂度,O(1)的空间复杂度就可以找到最小的k个数据。 从大量数据中查找最小的k个数,我们可以利用一个容器先存储前k个数据,然后从数据中读取下一个数,判断该数是与容器中最大的数的大小,如果该数较大

2015-09-07 00:42:36 703

原创 vector的clear()的内部过程与析构函数调用

总结一下:vector中存储了对象的指针,调用clear后,并不会调用这些指针所指对象析构函数,因此要在clear之前调用delete;如果vector存储的是对象,调用clear后,自建类型的对象(int之类的)直接删除,若是外部类型,则调用析构函数。class Test { public: Test() { cout<<"Test cons"<<endl;} ~T

2015-09-05 17:17:35 10864

转载 领英的kafka安装和配置

kafka下载:https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.1/kafka_2.10-0.8.1.tgz 分别在三台服务器上安装kafka: tar zxvf kafka_2.10-0.8.1.tgz修改每台服务器的config/server.properties broker.id: 唯一,填数字,本文中分别为132/133

2015-08-28 01:08:46 1141

转载 开源日志系统比较

一篇介绍四大开源日志系统很好的文章,包含facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flumehttp://dongxicheng.org/search-engine/log-systems/

2015-08-26 22:47:55 639

转载 fflush和fsync的联系和区别

1.提供者 fflush是libc.a中提供的方法, fsync是系统提供的系统调用。 2.原形 fflush接受一个参数FILE *. fflush(FILE *); fsync接受的时一个Int型的文件描述符。 fsync(int fd); 3.功能 fflush:是把C库中的缓冲调用write函数写到磁盘[其实是写到内核的缓冲区]。 fsync:是把内核缓冲刷到磁盘上。c库

2015-08-19 23:08:14 953

原创 关于<signal.h>中SIG_ERR、SIG_DEL、SIG_IGN定义的问题

#define SIG_ERR (void (*)())-1#define SIG_DEL (void (*)())0#define SIG_IGN (void (*)())1为什么不是#define SIG_ERR (void (*) (int))-1 呢?在网上搜索之后找到答案: 在C里这样的代码是可以的void fun(); int main(){ fun(1,2);

2015-08-17 23:25:38 6381

转载 孤儿进程与僵尸进程

1、前言  之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的

2015-08-17 23:06:11 376

转载 setjmp和longjmp函数使用方法

非局部跳转语句—setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#include <setjmp.h>Int setjmp(jmp_buf env);返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值 Void longjmp(jmp_buf env,int

2015-08-17 21:33:03 652

转载 wait和waitpid详解

1 写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, “工欲善其事, 必先利其器”嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我

2015-08-07 00:30:04 486

转载 Linux makefile 教程 非常详细 易懂

最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就是好文章。

2015-08-05 00:45:56 1301

原创 c++线程池

共享一份线程池的代码: http://download.csdn.net/detail/luomoshusheng/8957489 注解:CRunnable是基类,所有Thread继承于它;CThread是CWorker的父类,CWorker是实际的工作线程;CManage是管理线程池的,维护三链表,task,idle,busy。同时注意线程数,任务数和minThread与maxThread的关

2015-08-04 00:16:20 1020

转载 explicit的作用

在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性,

2015-07-29 20:52:02 2876

原创 银行窗口排队叫号系统实现

这是一个模拟银行窗口排队叫号调度系统,参考了网上两篇文章,一篇java的和一篇linux c++的,然后我在windows下实现了它,开发工具是vs2008.在文章最后我会给出直接可编译可执行代码。Java版参考:http://blog.csdn.net/zhangxiaoxiang/article/details/6294132 Linux c++版参考:http://blog.csdn.net

2015-07-23 20:16:34 23817

原创 银联加密算法

很多人对银联卡的加密算法感兴趣,毕竟分分钟涉及的都是你的钱的安全,但网上很少人却讲银联标准加密算法。遂写一遍当做是自己的学习笔记,偶尔忘了可以翻翻,同时希望能够帮助到其他人。 首先要认识一下cbc算法和ecb算法。cbc算法是链式的,慢,不可并行处理,但更安全,因为每一次加密都是依赖于上一次的结果,同时这也会导致一次错将导致后面的全部错误。 ecb算法是分块运算的,可并行,效率高,但不够安全,每

2015-07-20 20:59:47 4554

原创 git简易教程 一看就会

很久之前知道git,也使用过,但一直挺困惑,打了命令行提交之后总不知处于什么位置,也搞不懂这个可以纯打命令行进行版本控制的软件为什么这么让人着迷,很多高手都用github。这些天重新学习了一下,对git有了更深一层的了解,分享一下,希望可以给新手一些参考,看了就会用,不足之处也请指出。 git是一个神奇的软件,分布式,即使不用github远程仓库,你一样可以在本地进行版本控制,这一点跟svn很不一

2015-07-02 00:25:40 616

转载 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化

首先在编译程序时经常会遇到这种问题:[plain] view plaincopy在CODE上查看代码片派生到我的代码片 错误 1 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR” 1、觉得很烦,一般的做法就是不管三七二十一,在字符串前面加一个‘L’: 如调用函数FUN(LPCTSTR str)时,不能

2015-06-22 22:17:24 504

转载 一些VC的快捷键以及调试技巧

1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的G

2015-06-17 09:26:48 620

原创 浅谈设计模式之八——Decorator模式

先上uml图: 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 uml解析:装饰者模式又名包装器,顾名思义就是给某个对象添加一些功能,而不是给整个类添加一些功能。Component跟Decorator是聚合关系,子类ConcreteDecoratorA和ConcreteDecoratorB实现具体对Component的修饰。 下面给出

2015-04-29 10:12:42 758

原创 浅谈设计模式之七——Composite模式

同样地,先上uml图: 组合模式的意图:将对象组合合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 uml解析:leaf是叶节点,Composite可以理解为是一个多个叶节点的组合,它是非叶节点,就相当于一个元件以及一个元件容器,里面有很多元件一样。这里可以用list或者vector实现。 本来是想用模板来实现,后来发现实在是多此

2015-04-28 18:40:04 810

原创 浅谈设计模式之六——Bridge模式

先上uml图: uml解析:桥接模式讲的就是一个解耦的问题,将抽象与实现分离开来,对接口编程,使得RefinedAbstraction对实现依赖,而不是实现依赖于RefinedAbstraction,符合依赖倒置原则。 下面给出可执行代码: Bridge.h#pragma once#include <iostream>using namespace std;class Abtracti

2015-04-28 14:20:50 524

原创 浅谈设计模式之五——Adapter模式

这一节开始谈谈结构型模式。结构型模式包括:**适配器、桥接、组成、装饰、外观、享元、代理模式**7种设计模式。这一节说一下适配器模式,适配器模式可以分为类适配器和对象适配器,类适配器其实就是多继承,一般用对象适配器,因此这里只讲对象适配器。 先上uml: uml解析:客户需要的是Target中的Request接口,但是现有的Adeptee的接口是SpecificRequest(),而Adap

2015-04-28 12:34:46 577

原创 浅谈设计模式之四——Singleton模式

单例模式,即只有一个实例。 先上uml图: uml解析:基本思路是,构造函数为protected或者private,类不能被实例化,否则就可以有多个实例。static的特性使得类不需要被实例化就能被调用(因为它和全局变量一样是放在数据段) 下面给出可以执行的代码: singleton.h#pragma once#include <iostream>using namespace st

2015-04-22 23:06:35 405

原创 浅谈设计模式之三——Prototype模式

prototype模式即原型模式,同样先上uml图: uml解析:原型模式讲的是什么呢?原型模式讲的其实就是浅拷贝跟深拷贝的问题。什么是浅拷贝什么是深拷贝呢,相信学过c++的都懂。凡涉及到一个类中的成员变量有指针的,一定会设计到深浅拷贝问题。浅拷贝只是简单的复制指针的值,而没有复制指针的内容,这样在使用以及析构的时候往往会出现问题。一般是要实现拷贝构造函数,重载“=”操作符以及析构等。 下面

2015-04-22 16:09:03 591

原创 浅谈设计模式之二——Builder模式

同样地先上uml图 解析uml:其实这里应该是聚合而不是组合。Director和Builder是聚合关系,1对多,通过参数传到Construct()之后,根据具体的Builder一步一步构造,之后可以通过GetProduct返回一个产品。Builder是父类,下面有好些具体子类。 下面给出可执行的代码: Builder.h#pragma once#include <iostream>u

2015-04-19 23:56:47 459

转载 UML类图几种关系总结

这是一篇很不错的讲uml,转自http://blog.csdn.net/tianhai110/article/details/6339565 在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Genera

2015-04-13 19:59:41 545

原创 浅谈设计模式之一——简单工厂、工厂、抽象工厂

这些天意识自身的不足,看着几个同学跳槽后的高薪,实在是惭愧。毕业两年,仍一事无成,差距也正逐渐体现出来。人们常说,设计模式是一个初级程序员到高级程序员的必经之路。为了补强自己,重新研究了GOF四人帮的<23种设计模式>,其实以前看过,只是没看懂,最近重新研究了一番,理解了一些,希望用通俗易懂的语言把它写下来,或许对初学者有帮助,对自己也有提升。 设计模式分为创建型模式、行为型模式和结构型模式。创建

2015-04-13 14:00:07 618

Tkinter编程代码实例

Tkinter编程代码实例,python自带夸平台GUI库

2017-03-23

go语言编程

go语言编程,适用于各个阶段的学习,看了都是有所提升,好书,推荐(带目录)

2016-12-30

Go Web后端基础功能

Go作为google新新语言,相信未来还是有大发展的。此代码实现web后端的一些基础功能,对初学者还是有参考意义的,高手请略过,同时有错误也欢迎指出。

2015-11-23

TCP IP网络编程

由浅及深 从网络编程基础知识到io模型 select epoll io重叠 IOCP(io完成端口) linux和windwos全面涉及 经典良心好书 0分送上!!!

2015-09-17

线程池c++实现

线程池 c++

2015-08-03

银行排队叫号系统实现

银行排队叫号系统源码,若发现bug,欢迎指正,谢谢。操作系统是windows,开发工具vs2008

2015-07-23

嵌入式图形开发(基础篇)

Qt嵌入式图形开发(基础篇)

2012-08-28

嵌入式Linux设备驱动开发

续1-10章之后,第11章,嵌入式Linux设备驱动开发,好东西无偿分享给大家,好菜大家一起吃

2012-08-27

华清远见嵌入式linux开发课件之线程

续1-8章之后,这是嵌入式linux开发第9章,多线程编程,对新鸟老鸟都很有用!强烈推荐!

2012-08-27

华清远见嵌入式课件6到8章

续1——5章之后6到8章,主讲io编程,linuxc下的进程编程等,是很好很好的资料!强烈推荐!

2012-08-27

华清远见嵌入式课件1到5章

此为华清远见的课件,讲嵌入式linux开发,课件很好很详细,对想学嵌入式开发的同学有很大的帮助!

2012-08-27

linux高级字符设备驱动

高级字符设备驱动,重点详解等待队列这方面的内容

2012-08-21

驱动进阶(包括定时器中断等)

驱动驱动驱动驱动!包括定时器中断信号量互斥锁等,是个很好的学习资料,对初学者学驱动绝对有用!

2012-08-21

深入理解计算机系统

这是一本从底层讲c语言的书 一本很强很值得推荐的书 而不是讲操作系统原理的书 强烈推荐

2012-05-10

空空如也

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

TA关注的人

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