自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

转载 DNS 欺骗原理

DNS欺骗  DNS欺骗是这样一种中间人攻击形式,它是攻击者冒充域名服务器的一种欺骗行为,它主要用于向主机提供错误DNS信息,当用户尝试浏览网页,例如IP地址为XXX.XX.XX.XX ,网址为www.bankofamerica.com,而实际上登录的确实IP地址YYY.YY.YY.YY上的www.bankofamerica.com ,用户上网就只能看到攻击者的主页,而不是用户想要取得

2015-06-23 09:47:01 6328 1

转载 how to use assert() efficiently

Context: I write server software for a living, the kind that stays up for weeks before the next version is loaded. So my answers may be biaised toward highly defensive code.The principle.Befor

2015-06-19 12:07:42 670

原创 int 与char数组之间的转换

1 #include      2 #include      3 #include      4       5 int main()      6 {      7     char arr[4] = {0};      8     int val = 2345455;      9      10     memcpy(arr, &val, 4); 

2015-06-11 15:28:30 2680

原创 字符串拷贝函数的安全用法模板

字符串拷贝函数的安全用法模板Src 完全拷贝snprintf:bzero(dest, sizeof(dest));snprintf(dest, sizeof(dest), “%s”, src);strncpy:bzero(dest, sizeof(dest));strncpy(dest, src, sizeof(dest)-1);Src 截取

2015-06-10 00:58:10 1667

转载 字符串拷贝函数memcpy()、strncpy()和snprintf()性能之比较

问题:函数memcpy(dest, src, sizeof(dest))、strncpy(dest, src, sizeof(dest))和snprintf(dest, sizeof(dest), "%s", src)都可以将src字符串中的内容拷贝到dest字符串中。哪一种方式效率最高呢?就是说,哪种方式性能最好呢?解决办法:1. 建立三个

2015-06-09 22:06:07 1854

转载 Snprintf Strncpy Memcpy Strlcpy各自的特点

Snprintf Strncpy Memcpy Strlcpy各自的特点在做一个大型系统的性能优化时,字符串拷贝都能在性能消耗方面占据相当比重,选择合适的字符串处理函数,至少能避免一些无谓的性能消耗。通常接触的字符串拷贝函数有这么些:snprintf strncpy memcpy strlcpy。考虑的核心问题就是高效和安全。snprintfint snprintf(cha

2015-06-09 20:56:59 1366

转载 all about the linux swap space

By Gary SimsLinux divides its physical RAM (random access memory) into chucks of memory called pages. Swapping is the process whereby a page of memory is copied to the preconfigured space on the h

2015-06-09 20:47:22 543

原创 解决一个千万级别的数组引发的问题的深入剖析

问题:         要产生一千万个7位的随机数。定义一个千万int元素的数组。#define N10000000         intmain()         {         int a[N] = {0};}                  这时候程序可以编译通过,但是一运行就会出现segment fault。 问题的分析:

2015-05-31 13:17:25 2102

转载 C语言产生随机数

一说起随机函数,恐怕又有人说这是老生长谈了……一般很多人都形成了自己的固定格式,因为随机数用处比较大,用的时候比较多,拿过来就用了。但是新手不这么干,他们总是抱有疑惑,我就是一个新手,而且较菜……为了让跟我一样的菜鸟看明白,我会尽量的说得让高手们不屑一顾(:由于可能内容太多可能会分篇,大家见谅^计算机的好处是精确,所以它不擅长模拟信号,但它的缺点也是如此。于是在一些模拟问题上计算机遇到麻烦

2015-05-31 00:01:22 949

转载 C语言全局变量多文件使用

C语言全局变量多文件使用定义一个全局变量,想在多个文件中使用,代码如下://var.hextern  int  var ; //var.c#include"var.h"int var = 10; //otherA.c#include"var.h" //otherB.c

2015-05-25 10:49:51 1356

转载 文件尾判断 EOF feof()两种方式

查看 stdio.h 可以看到如下定义: #define  EOF  (-1) #define  _IOEOF  0x0010 #define  feof(_stream)  ((_stream)->_flag & _IOEOF) 由此可以看出,这两种方式的原理是不同的。 在这里先说下EOF和feof()这个两个宏定义,在我们学的

2015-05-24 23:44:15 1043

转载 关于数组结构体的初始化

/////////////////////////////////////////////////////////该问题涉及到数据类型初始化的问题,现将C语言中数据类型初始化总结如下1.用{}初始化简单变量的初始化形式如下: 数据类型 变量名=初始化值;   例如,定义整型变量a,并给其初始化值10的语句如下   int a=10;数组的初始化,需要通过一常量数

2015-05-24 23:28:49 3295

转载 树查找(三)Treap树

转自:http://www.cnblogs.com/huangxincheng/archive/2012/07/30/2614484.html 我们知道,二叉查找树相对来说比较容易形成最坏的链表情况,所以前辈们想尽了各种优化策略,包括AVL,红黑,以及今天要讲的Treap树。       Treap树算是一种简单的优化策略,这名字大家也能猜到,树和堆的合体,其实原理比较简单

2015-05-24 14:42:54 478

转载 树查找(二)二叉平衡树

转自:http://www.cnblogs.com/huangxincheng/archive/2012/07/22/2603956.html上一篇我们聊过,二叉查找树不是严格的O(logN),导致了在真实场景中没有用武之地,谁也不愿意有O(N)的情况发生,作为一名码农,肯定会希望能把“范围查找”做到地球人都不能优化的地步。     当有很多数据灌到我的树中时,我肯定会

2015-05-24 14:38:24 611

转载 树查找(一)二叉查找树

转自:http://www.cnblogs.com/huangxincheng/archive/2012/07/22/2603956.html  感谢作者  一直很想写一个关于树结构的专题,再一个就是很多初级点的码农会认为树结构无用论,其实归根到底还是不清楚树的实际用途。 一:场景:1:现状    前几天我的一个大学同学负责的网站出现了严重的性能瓶颈,由于业

2015-05-24 14:34:50 531

转载 C语言中的static 详细分析

转自:http://blog.csdn.net/keyeagle/article/details/6708077 感谢作者google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。        

2015-05-22 00:40:33 454

转载 syslog相关

2013-05-13 15:01 3305人阅读 评论(0) 收藏 举报目录(?)[-]syslog架构关于syslog的协议介绍 syslog的格式 PRI部分 HEADER部分 MSG部分 RFC3195 几种syslog的实现syslogdrsyslogdsyslog-ngkiwisyslogsyslog配置文件与应用基本语

2015-05-21 12:20:43 762

转载 可变参数的使用 va_start和va_end

本文主要介绍va_start和va_end的使用及原理。  在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。  介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(

2015-05-21 12:19:30 706

转载 线程同步的三种方式

线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。一、互斥锁(mutex)通过锁机制实现线程间的同步。初始化锁。在Linux下,线程的互斥量数据类型是pthread_mutex_t。在使用前,要对它进行初始化。静态分配:pthread_mutex_t mutex = PTHR

2015-05-18 20:54:37 591

原创 函数指针 编译问题

这是main.c#includevoid func_main(){ printf("func_main!\n"); func_file_1(func_file_2);}int main(){ func_main(); return 0;}这是file_1.c#includevoid func_file_1(void(*func)

2015-05-18 00:29:47 925

转载 malloc、calloc、realloc的区别

转自:http://blog.csdn.net/shuaishuai80/article/details/6140979 感谢作者!(1)C语言跟内存分配方式从静态存储区域分配.       内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.在栈上创建       在执行函数时,函数内局部变量的存储单元都可以在栈上创建

2015-05-17 19:45:31 434

转载 用户态内核态通信(二)

netfilter与用户空间通信二法声明:此文章只是 陈鑫在Linux 系统内核空间与用户空间通信的实现与分析 的笔记,结合自己在一些开源项目看到的体会,仅此而已。原理性的东西都在 陈鑫 的文章中有详尽的说明和解释。如果侵犯了作者的权利,请通知我,我会及时删除。1 先说明一下环境。Linux 内核代码的运行环境有三种:用户上下文环境、硬中断环境和软中断环境。但三种环

2015-05-09 23:19:40 617

转载 用户态内核态通信 (一)

多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。1 引言Linux 是一个源码开放的操作系统,无论是普通用户还是企业用户都可以编写自己的内核代码,再加上对标准内核的裁

2015-05-09 23:12:46 609

转载 linux 软硬中断

软中断 硬中断目录(?)[-]概述开关硬中断软中断本文主要内容:硬中断 / 软中断的原理和实现内核版本:2.6.37Author:zhangskd @ csdn blog 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激

2015-05-09 22:37:16 579

转载 动态规划(三)背包问题

动态规划之背包问题(一)March 1, 2013作者:Hawstein出处:http://hawstein.com/posts/dp-knapsack.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。一切都要从一则故事说起。话说有一哥们

2015-05-05 19:36:56 497

转载 动态规划(二)深入理解

[-]动态规划从新手到专家前言前言_简介入门初级中级中高级高级其它后记Random Posts动态规划:从新手到专家March 26, 2013作者:Hawstein出处:http://hawstein.com/posts/dp-novice-to-advanced.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍

2015-05-05 00:53:08 851

转载 动态规划(一) 概述

转自:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html五大常用算法之二:动态规划算法一、基本概念    动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基

2015-05-04 23:51:58 481

转载 java 判断字符串是否为整数

1.用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.println(str.charAt(i)); if (!Character.isDigit(str.charAt(i))){ return false;

2015-05-01 23:25:53 12189 1

转载 String对象中用于搜索和提取子字符串的方法

1、string.indexOf(searchString.position)从position(可选)位置开始,搜索字符串中的第一个searchString所出现的位置并返回。例如:"hello,jack".indexOf("hello")将返回0"abcabc".indexOf("a",1)将返回32、string.lastIndexOf(searchString.

2015-04-30 15:22:04 6080 1

转载 LCS公共子串

转自:http://tianyunpu2008.blog.163.com/blog/static/6559379920089162236915/最长公共子串(LCS)最长公共子串(LCS),有三种情况:1.公共子串的元素必须相邻. 2.公共子串的元素可以不相邻联单3. 求多个字符串而不是两个字符串的最长公共子串1.公共子串的元素必须相邻:    LCS问题就是求两个字符串最

2015-04-28 21:48:02 581

转载 fcanf fgets 的用法

1、fgets()用法    从流中读一行或指定个字符,  原型是char *fgets(char *s, int n, FILE *stream);  从流中读取n-1个字符,除非读完一行(换行\n),参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。  形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为

2015-04-28 17:14:21 2026

原创 C语言的相关简短笔记

字符串操作1.      拷贝最好优先选择memcpy 效率,稳定性比较高优先性:memcpy > snprintf> strncpy > sprintf > strcpy  2.      查找最好优先性选择memmem 效率,稳定性高

2015-04-24 23:40:33 699

转载 strcpy sprintf memcpy

转自:http://blog.csdn.net/lickylin/article/details/7856779  感谢作者最近在做远程升级的内容,通过实践才真正体会到不同拷贝函数的作用char*strcpy(char *dest, const char *src);其对字符串进行操作,完成从源字符串到目的字符串的拷贝,当源字符串的大小大于目的字符串的最大存储空间后,执行该

2015-04-24 23:23:35 557

转载 libxml解析

libxml是一个用于解析xml文件的库,在各个平台下都能使用,也支持多种语言,如c,python等。这里是官方网站。上面有libxml的api和一些code examples,都是英文的。不过比较简单。libxml的基础功能就是对xml的读和写。下面将简单介绍libxml的读的功能。(大部分内容是参照libxml tutorial 的文档)0 编译程序因为本人

2015-04-22 12:08:01 1252

原创 postgresql编程

对于psql编程有两种方式1. 直接调用libpq的编程接口进行编程2. 通过odbc作为中间层进行编程

2015-04-18 18:27:59 567

原创 postgresql常用命令

常用命令: 启动数据库:postmaster -D/usr/local/pgsql/data > /usr/local/pgsql/pglog/log 2>&1 &关闭数据库:source  ~/.bash_profile         pg_ctl stop查看数据库是否启动: ps -ef|greppost  创建数据库:   createdb mydb删除数

2015-04-18 00:45:02 508

转载 linux 线程互斥锁

在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务;互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mutex_unlock这几个函数以完成锁的初始化,锁的销毁,上锁和释放锁操作。一,锁的创建    锁可以被动态或静态创建,可以用

2015-04-18 00:16:17 464

转载 启动关闭postsql

1. 启动数据库服务器(posgres用户):[plain] view plaincopyprint?[postgres@localhost bin]$ postgres -D /opt/postgresql/data/ > /opt/postgresql/log/pg_server.log 2>&1 &  [1] 4508  当

2015-04-17 21:08:02 2219

转载 Linux环境下段错误的产生原因及调试方法小结

Linux环境下段错误的产生原因及调试方法小结最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,

2015-04-17 16:23:26 447

转载 postgresql 安装

一、简介PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。二、系统环境系统平台:CentOS release 6.3 (Final)Postgre

2015-04-17 00:25:21 516

空空如也

空空如也

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

TA关注的人

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