自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (5)
  • 收藏
  • 关注

原创 进程间通信之:socket

最近初步学习了本地进程间通信的方式(PIPE、FIFO、message queue、semaphore、shared memary),计划按照“unix 环境高级编程”来学习socket,但是书本上来就讲socket的一些api,感觉一直没搞懂,通过今天的网络搜索,终于发现几篇不错的文章,再次整理一下,即梳理思路,又可转换成自己容易理解的语言。1.TCP/IP  在学习socket之前,先简单了解一

2016-12-14 15:25:27 10468 4

原创 计算机存储结构分析(寄存器,内存,缓存,硬盘)

前言        一个计算机包含多种存储器比如:寄存器、高速缓存、内存、硬盘、光盘等,为啥有这么多种存储方式,对于不太了解的人,总是觉得云里雾里的,搞不明白原因,直接弄一个存储器不就得了?计算机主要的功能就是运算(cpu),但是要完成一个任务,就要获取运算指令,并将结果输出给用户。因此,指令的存储,运算过程中中间状态的存储,结果的保存等都需要存储器。理想状态下,存储器的执行速度应该极

2016-12-02 15:15:06 9925

原创 C++ virtual的使用

C++中虚函数用法参考文章:https://www.cnblogs.com/weiyouqing/p/7544988.html通过对该文章的理解得出以下笔记1、对象指针是什么类型的,就调用对应的函数,即使该指针指向了子类等,因为是在编译器编译阶段确定的,此时只能根据对象类型,链接指定的函数指针。2、如果同一个函数,在不同的子类有不同的重载(开发中一般定义的是基类指针,这样可以随意指向任何子类对象), 如果需要根据当时该指针指向了那个对象,就调用那个对象对应的方法,需要将该方法声明称virtual的;

2021-04-26 10:25:45 219

转载 信号量 实现进程互斥与同步

信号量基本术语现代计算机系统中,多个进程可以并发执行,进程间必然存在共享资源和相互合作的问题。同步主要是用户多个进程相互协作,共同完成任务,是进程间的直接制约问题;互斥则主要是为了多个进程分时使用有限的资源。信号量(semaphore)是1965年由荷兰人Dijkstra提出的一种卓有成效的进程间同步及互斥工具。信号量在操作系统中实现时一般作为一个整数变量,这种信号量称为整型信号量。...

2018-03-24 10:25:43 7801

转载 端口大全

2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发生器 20端口:FTP文件传输协议(默认数据口) 21端口:FTP文件传输协议(控制) 22端口:SSH远程登录协议 23端口:telnet(终端仿真协议),木马Tiny Telnet Se

2017-06-10 09:59:50 7718 1

原创 BGP的消息类型以及格式

1. BGP的消息类型:bgp是建立在tcp之上的协议,tcp端口号179 1:open(打开消息) 2:keepalive(存活消息) 3:update(更新消息) 4:notification(报错消息)2.BGP包头格式: bgp的所有消息都会以该头开始 Maker(16字节)——-全为1,标识bgp报文边界 Length(2字节)——-BGP包全长,长度的值必须最少19字节最

2017-06-05 15:42:13 18405

原创 单链表自动生成函数

#include <stdio.h>#include <stdlib.h>#include <memory.h>typedef struct SLHead_struct { //single list head char * sl_mbr_ptr;// unsigned int total_elements;} SLHeadType;//入参自动生成宏#define __

2017-05-11 14:47:09 598

原创 单链表 查找函数自动生成宏

#define DEFINE_SINGLE_LIST_LOOKUP_FUN(the_func_name, node_type,x,...) \node_type * the_func_name(node_type * the_list, node_type * the_ele) \{

2017-05-10 09:04:01 383

原创 ospf协议中cost和metric关系

cost数据经过该接口的消耗。 路由每经过一跳,都要加上该跳的cost值。如下图 P1—-(vlan10)——–P2——(vlan11)——-P3——-(vlan12)—–P4对于P1设备而言,DIP是P4的路由,其默认metric=3。原因是要经过三跳(P1,P2,P3),而每一跳的默认cost都为1,所以1+1+1=3。 如果此时修改P1的vlan10的cost为2,则metric=2+1

2017-05-09 14:35:19 16236

原创 hash链表自动生成宏

#include <stdio.h>#include <stdlib.h>#include <memory.h>struct StdListLinker { struct StdListLinker * next; struct StdListLinker * prev;};typedef struct ListHead_struct { struct StdLis

2017-04-19 14:15:06 325

原创 Nosql 概念释义

进几年常常听到一个高大上的名字Nosql,再加上鼓吹者说Nosql将会消灭关系数据库,今天怀着好奇心里,简单了解了以下Nosql的概念,发现其实没有那么神秘,被鼓吹者夸大其词了,导致我等门外汉一下子给打懵了,下面就今天的简单理解,做一个记录。   本文并不涉及任何Nosql的技术细节,只是一个概念普及,期望能起到一个破除神秘感的效果。引言  Nosql是NOT ONLY SQL的意思,Nosql之

2016-12-23 16:38:07 2126

原创 新发现的学习网站:实验楼

网站地址:https://www.shiyanlou.com/ 没有用过的可以试试,这个网站优势就是学习过程是远程登陆到一台linux虚拟机,边学习边实验。    除了可以在网站上学习写代码,还可以学习操作系统、vim,编译原理等。尤其对于想学习linux系统的人来说,就不用再去装一个linux虚拟机了。

2016-12-22 17:09:46 2920

转载 socket状态查看

[转载自]http://www.xitongzhijia.net/xtjc/20141230/33791Linux系统中,ss命令可用于查看系统的socket的状态,而socket作为系统的进程通信机制,了解其状态是很有必要的,下面小编就给大家介绍下Linux如何使用ss命令查看socket的状态。 Linux如何使用ss命令查看socket状态   ss是Socket Statistics的

2016-12-15 16:42:42 5705

原创 vim 单文件替换方法

:s 命令进行替换操作 % 所有行 g 单行内所有匹配项 i 忽略大小写 c 确认是否替换 基本语法关键词 old 替换为 new :s/old/new 将光标所在行第一个 old 替换为 new :s/old/new/g 将光标所在行所有 old 替换为 new:s/old/new/gc 将光标所在行所有

2016-12-15 09:05:50 515

原创 进程间通信之:IPC

IPC(Interprocess Communication)有三种称做XSI IPC的IPC:消息队列(message queues)、信号量(semaphores)、以及共享内存(shared memory)。XSI是什么意思?标识符(identifier)和键(key)  每个内核中的IPC结构(消息队列, 信号量和共享存储段)都用一个非负整数的标识符来加以引用。要向一个队列中发送消息或读

2016-12-13 15:04:11 535

转载 从linux 系统调用 学习可变参数宏的用法

转载自http://blog.chinaunix.net/uid-23069658-id-4106015.html?page=2 截取了作者原文中,自己比较关系你的一部分这段时间又碰到系统调用这个家伙,结果在我当前用的3.0.x内核里全变样了。为了将这个问题弄明白,还得自己动手才行,这里非常感谢CSDN的"海风林影"兄弟提供的博文和相关参考文献,还是那句话“成果和荣耀归于前辈”。 

2016-12-06 18:20:36 586

原创 gcc 参数可变 宏 进阶

可变参数宏的基础已用可以参考文档 http://blog.csdn.net/younkerjqb/article/details/53484330先看一个例子#define TEST(param3,param2,param1) param3 @ param2 @ param1 #define DEBUG_PRINTF(...) TEST(__VA_ARGS__)DEBUG_PRI

2016-12-06 18:09:18 1776

原创 C 参数可变宏使用

引言C语言有可变参数函数void printf(const char* format, …);开发中用到printf的地方常常需要做一层封装,这样可以定义自己的开关,从而可以灵活控制打印。以前常用的都是封装一层函数,void debug_printf(char * fmt,...){ ..........//定义自己的可变参数函数 if( g_d

2016-12-06 16:13:28 1193

原创 吐槽 CSDN MarkDown编辑器

写文章时候,尝试了一下MarkDown编辑器使用后的心情就是一个糟。MarkDown有很多优点,这自然不必多说,但是作为一个IT交流社区,至少 代码显示,字体颜色,字体背景等都得支持吧。CSDN又不是一个只写小说的网站。这样的产品就上线使用,怎能说一个烂字了得

2016-12-05 15:40:51 327

转载 shell变量详解

转载自:http://www.cnblogs.com/barrychiao/archive/2012/10/22/2733210.html1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类:局部变量和环境变量

2016-11-15 16:00:39 318

原创 进程加载

曾经遇到一个程序挂起问题时,挂起地址打印出来,自己一筹莫展。一个前辈操作一会后,就立刻告诉我挂起的函数,当时觉得很奇怪,今天看书过程中终于理解了这个问题。作为一个非科班出身的程序员来说,一直只是一个代码的搬运工,编译和运行的很多原理其实都一塌糊涂。1,程序在编译时候已经为函数和初始化的全局变量分配了地址空间 跟我一样,只是代码搬运工的可能要问了,我都没加载程序,如何确定地址

2016-05-01 10:23:48 595

原创 java整合opencv

做数字图像处理的同学都知道,OpenCV这个库很好用。在Java中使用OpenCV有两种方式:第一种方式是通过java的JNI,调用C++编写的OpenCV的动态链接库;第二种方法就是直接用JavaCV了。下面详细介绍下JavaCV的使用。1. 参考文献:http://code.google.com/p/javacv/    前人配置:http://blog.csdn.net/haoba1

2014-01-16 18:01:07 2509

转载 jquery 对select中option的操作

语法解释:1. $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发2. var checkText=$("#select_id").find("option:selected").text();  //获取Select选择的Text3. var checkValue=$("#select_i

2013-12-05 11:27:48 563

原创 itext

1.iText介绍     需要用到jar包     :itext-5.4.4.zip  核心包,下载地址http://www.itextpdf.com/product                                  xmlworker-5.4.4.zip 用来将xml和html转为pdf,itext新的项目,下载地址http://www.itextpdf.com/pro

2013-12-05 11:26:52 717

转载 Struts2 请求过程

概述:Struts2框架由三部分构成:核心控制器、业务控制器和用户实现的业务逻辑组件。在这三部分中,struts2框架提供了核心控制器StrutsPrepareAndExecuteFilter,而用户需要实现业务控制层和业务逻辑层。一、核心控制器 StrutsPrepareAndExecuteFilter StrutsPrepareAndExecuteFilter与stru

2013-12-05 11:20:27 1591

转载 网络抓取

package net; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.

2013-12-05 11:11:20 642

转载 java常用设计模式另类解释

Java常用的设计模式创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也

2013-12-05 10:38:28 1765

转载 设计模式 之 Facade

设计模式 -- FacadeFacade模式  Facade模式要求一个子系统的外部与其内部的通信必须通过一个统一的Facade对象进行。Facade模式提供一个高层次的接口,使得子系统更易于使用。     就如同医院的接待员一样,Facade模式的Facade类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与Facade对象打交道,而不需要与子系统内部的很多对象打交道。

2013-12-05 10:23:47 462

原创 mysql 字符串转数字再排序

如果数字是按照字符串格式存储的排序时候又想按照数字排血 只需要在order by后加上转换函数即可例如: order by  CONVERT(sort,DECIMAL)可用的类型      二进制,同带binary前缀的效果 : BINARY      字符型,可带参数 : CHAR()       日期 : DATE       时间: TIME       日期时间

2013-11-18 15:42:01 2057

转载 JS中的prototype

S中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式在.Net中可以使用clone()来实现原型法原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。 2 javascript的方法可以分为三类:a 类方法b 对

2013-11-14 17:00:39 908

转载 Struts2 拦截器 入门

一、理解Struts2拦截器1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺

2013-11-08 16:40:52 369

原创 前序 中序 后序 遍历的求解

前中===>后例如:在一棵二叉树总,前序遍历结果为:ABDGCEFH,中序遍历结果为:DGBAECHF,求后序遍历结果。我们知道:前序遍历方式为:根节点->左子树->右子树中序遍历方式为:左子树->根节点->右子树后序遍历方式为:左子树->右子树->根节点从这里可以看出,前序遍历的第一个值就是根节点,然后再中序遍历中找到这个值,那么这个值的左边部分即为当前二叉树的左子树部分

2013-11-06 22:49:26 699

转载 itext5关于页眉和页脚的设置

iText5中并没有之前版本HeaderFooter对象设置页眉和页脚,可以利用PdfPageEventHelper来完成页眉页脚的设置工作。PdfPageEventHelper中包含以下事件处理器。       onOpenDocument() — 当打开一个文档时触发,可以用于初始化文档的全局变量。       onStartPage() — 当一个页面初始化时触发,可用于初始

2013-11-04 15:48:53 7717 3

转载 tcp 和udp的区别

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主

2013-10-14 17:28:12 442

原创 php array的用法

一直在纠结php如何方便的创建2维数组,从如下代码得到启发,原来不用什么合并,和追加等函数。默认的声明一个array 例如$item = array(); 那么$item['id'] = 1;就相当于往数组追加一个内容,如果中括号内容为空,则是普通数组示例:$array = array();$item = array();$item['id'] = 1;$item['xu

2013-10-10 09:22:48 584

转载 windows mysql 自动备份的几种方法

1、复制date文件夹备份============================假想环境:MySQL   安装位置:C:\MySQL论坛数据库名称为:bbs数据库备份目的地:C:\db_bak\============================新建db_bak.bat,写入以下代码*******************************Code

2013-09-30 13:58:58 3818

原创 io 测试

//其中能够实现编码的只有OutputStreamWriter和对应inputStreamReader package net;import java.io.BufferedWriter;import java.io.File;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.Fil

2013-09-06 17:52:13 798

原创 一个简单的网页抓取例子

package net;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;impo

2013-09-06 14:56:03 919

转载 discuz 注册和登陆成功后跳转页面修改

方法1:修改文件 source/class/class_member.php查找:$locationmessage = 'register_succeed_location';复制代码本帖隐藏的内容只修改下方: $url_forward = dreferer(); 更改跳转页面例如:$url_forward = '

2013-08-29 14:06:08 6948

原创 discuze 学习心得

function setglobal($key , $value, $group = null) { //函数功能给全局变量$_G赋值 global $_G; $key = explode('/', $group === null ? $key : $group.'/'.$key); $p = &$_G; //$p引用了全局变量$_G foreach ($key as $k) {

2013-08-29 14:03:47 757

jquery1.7.chm 中文api

保证好用的jquery中文api,保证好用的jquery中文api

2013-07-30

jquery form 表单验证神器

完美超强的 表单验证插件,内包含详细文档说明,容易上手

2013-04-11

Spring2.5-中文参考手册.chm

chm的SPRINg api 支持搜索,方便大家查询

2013-03-26

FlashFxp 上传下载

免费的ftp 上传下载工具,直接解压即可使用

2013-03-26

jfreechart.jar

方便简单的图表制作库,想制作表格的可以拿来看看

2013-03-26

空空如也

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

TA关注的人

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